package com.jasamedika.medifirst2000.converter; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.persistence.Column; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import org.springframework.stereotype.Component; import com.google.gson.Gson; import com.jasamedika.medifirst2000.base.BaseModel; import com.jasamedika.medifirst2000.converter.base.BaseVoConverter; import com.jasamedika.medifirst2000.entities.MapRuanganToAkomodasi; import com.jasamedika.medifirst2000.vo.MapRuanganToAkomodasiVO; @Component public class MapRuanganToAkomodasiConverter implements BaseVoConverter { @Override public MapRuanganToAkomodasi transferVOToModel(MapRuanganToAkomodasiVO vo, MapRuanganToAkomodasi model) { if (null == model) model = new MapRuanganToAkomodasi(); try { String[] fieldsToInclude = null; Map serialized = vo.serialize(fieldsToInclude,vo.getClass().getName()); Gson gson = new Gson(); String json = gson.toJson(serialized); model = gson.fromJson(json, MapRuanganToAkomodasi.class); } catch (Exception e) { e.printStackTrace(); } return model; } @Override public List transferListOfModelToListOfVO(List models, List vos) { if (null == vos) vos = new ArrayList(); if (null == models) return vos; for (MapRuanganToAkomodasi mak : models) { MapRuanganToAkomodasiVO vo = new MapRuanganToAkomodasiVO(); vo=transferModelToVO(mak, vo); vos.add(vo); } return vos; } @Override public MapRuanganToAkomodasiVO transferModelToVO(MapRuanganToAkomodasi model, MapRuanganToAkomodasiVO vo) { if (null == vo) vo = new MapRuanganToAkomodasiVO(); try { List fieldsToInclude = new ArrayList(); for (Field field : BaseModel.GetFields(model.getClass())) { String str = field.getName(); String name = field.getName(); if(name.equals("serialVersionUID"))continue; Boolean valid = false; for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) { if (annotation instanceof JoinColumn) { valid=true; } else if (annotation instanceof Column) { Column column = (Column)annotation; if(column.name().endsWith("Fk")) if(field.getName().endsWith("Id")==false) valid=true; }else if (annotation instanceof OneToMany) { valid=true; } } if(valid ==false) fieldsToInclude.add(str); } Map serialized =model.ToMap(); Gson gson = new Gson(); String json = gson.toJson(serialized); vo = gson.fromJson(json, MapRuanganToAkomodasiVO.class); } catch (Exception e) { e.printStackTrace(); } return vo; } }