argos/dmp-backend/src/main/java/utilities/builders/ModelBuilder.java

78 lines
2.5 KiB
Java

package utilities.builders;
import java.util.LinkedList;
import java.util.List;
import entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
import entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition;
import models.components.commons.datafield.CheckBoxData;
import models.components.commons.datafield.ComboBoxData;
import models.components.commons.datafield.FieldData;
import models.components.commons.datafield.RadioBoxData;
import utilities.ModelDefinition;
import utilities.ViewStyleDefinition;
public class ModelBuilder {
public <U extends ModelDefinition<T>,T extends DatabaseModelDefinition> List<T> toModelDefinition(List<U> items,Class<T> clazz){
List<T> list = new LinkedList<T>();
for(U item : items){
try {
list.add(item.toDatabaseDefinition(clazz.newInstance()));
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
public <U extends ViewStyleDefinition<T>,T extends DatabaseViewStyleDefinition> List<T> toViewStyleDefinition(List<U> items,Class<T> clazz){
List<T> list = new LinkedList<T>();
for(U item : items){
try {
list.add(item.toDatabaseDefinition(clazz.newInstance()));
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
public <U extends ViewStyleDefinition<T>,T extends DatabaseViewStyleDefinition> List<U> fromViewStyleDefinition(List<T> items,Class<U> clazz){
List<U> list = new LinkedList<U>();
for(T item : items){
try {
U modelItem = clazz.newInstance();
modelItem.fromDatabaseDefinition(item);
list.add(modelItem);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
public <U extends FieldData<U>> U toFieldData(Object data,String type){
if(type.equals("combobox")) return (U) new ComboBoxData().fromData(data);
if(type.equals("booleanDecision"))return null;
if(type.equals("radiobox"))return (U) new RadioBoxData().fromData(data);
if(type.equals("checkBox"))return (U) new CheckBoxData().fromData(data);
if(type.equals("freetext"))return null;
return null;
}
}