package info.bukova.isspst.ui.search;

import info.bukova.isspst.data.Order;
import info.bukova.isspst.data.Requirement;
import info.bukova.isspst.data.TripBill;
import info.bukova.isspst.data.TripRequirement;

/**
 * @author Pepa Rokos
 * 
 * Tovární třída transformačních objektů
 *
 */
public class TransformerFactory {
	
	/**
	 * Vrací transformační objekt pro předanou entitu
	 * 
	 * @param object entita k transformaci
	 * @return transformační objekt
	 */
	public static ResultTransformer transformerFor(Object object) {
		if (object instanceof TripBill) {
			return new TripBillTransformer();
		}
		if (object instanceof TripRequirement) {
			return new TripRequirementTransformer();
		}
		if (object instanceof Requirement) {
			return new RequirementResultTransformer();
		}
		if (object instanceof Order) {
			return new OrderResultTransformer();
		}
		
		return new CommonResultTransformer();
	}

}
