87 lines
2.8 KiB
Java
87 lines
2.8 KiB
Java
package utilities.builders;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
import org.w3c.dom.Element;
|
|
|
|
import entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
|
|
import entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition;
|
|
import models.components.commons.datafield.AutoCompleteData;
|
|
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 models.components.commons.datafield.WordListData;
|
|
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,Element dataElement){
|
|
if(type.equals("combobox")){
|
|
if(dataElement.getAttribute("type").equals("autocomplete")){
|
|
return (U) new AutoCompleteData().fromData(data);
|
|
}else if(dataElement.getAttribute("type").equals("wordlist"))
|
|
return (U) new WordListData().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;
|
|
}
|
|
|
|
|
|
|
|
}
|