package lifting.list;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import lifting.AbstractLifting;
import org.jdom2.Document;
import org.jdom2.Element;
import adapters.InterfaceToClass;
public class ServerLiftingList extends AbstractLifting<ParameterizedType> {
public ServerLiftingList(Document doc, ParameterizedType clazz, InterfaceToClass adpt) {
super(doc, clazz, adpt);
}
/**
* Rename the document with the right name
*/
private void renameList(){
Class<?> genericType = (Class<?>)clazz.getActualTypeArguments()[0];
String newName = genericType.getSimpleName().toLowerCase()+"s";
newName = newName.toLowerCase()+"s";
System.out.println(doc.getRootElement());
this.doc.getRootElement().setName(newName);
System.out.println(this.doc.getRootElement());
}
@Override
public Document lifting(){
System.out.println("ServerLiftingList : "+clazz.getActualTypeArguments()[0]);
System.out.println(doc.getRootElement().toString());
this.renameList();
Element rootElement = doc.getRootElement();
List<Element> elements = rootElement.getChildren();
for(Element element:elements){
this.indivLifting(element, (Class<?>)(clazz.getActualTypeArguments()[0]));
}
return doc;
}
}