class PersistableTaxClassMapper implements Mapper<PersistableTaxClass, TaxClass> {

	@Override
	public TaxClass convert(PersistableTaxClass source, MerchantStore store, Language language) {
		Validate.notNull(source, "PersistableTaxClass cannot be null");
		Validate.notNull(store, "MerchantStore cannot be null");
		TaxClass taxClass = new TaxClass();
		taxClass.setMerchantStore(store);
		taxClass.setTitle(source.getName());
		taxClass.setId(source.getId());
		return this.merge(source, taxClass, store, language);
	}

	@Override
	public TaxClass merge(PersistableTaxClass source, TaxClass destination, MerchantStore store, Language language) {<FILL_FUNCTION_BODY>}

}

		Validate.notNull(source, "PersistableTaxClass cannot be null");
		Validate.notNull(destination, "TaxClass cannot be null");
		Validate.notNull(store, "MerchantStore cannot be null");
		
		destination.setCode(source.getCode());
		if(source.getId()!=null && source.getId().longValue() > 0) {
			destination.setId(source.getId());
		}
		destination.setMerchantStore(store);
		destination.setTitle(source.getName());
		
		return destination;
	
<no_super_class>