package eu.choreos.vv.itemprinter;
import eu.choreos.vv.clientgenerator.Item;
/**
* This class is the String representation of an Item Request Object
*
* @author Felipe Besson
*
*/
public class ItemRequest implements ItemRepresentation{
private String name;
private Item item;
public ItemRequest(Item item){
this.item = item;
name = PrinterUtils.toCamelCase(item.getName());
}
@Override
public String buildHeader() {
return setContent(item, "Item " + name + " = new ItemImpl(\"" + name + "\");");
}
@Override
public String buildBody() {
String printedItem = "";
for(Item entry : item.getChildren())
printedItem += PrinterUtils.printChildren(entry, item.getName(), this);
return printedItem;
}
@Override
public String getLeafContent(Item item, String parentName) {
return setContent(item, "\n" + parentName + ".addChild(\""+PrinterUtils.toCamelCase(item.getName())+"\");");
}
@Override
public String getChildAccessMethod(Item item, String parentName) {
return setContent(item, "\nItem " + PrinterUtils.toCamelCase(item.getName()) + " = " + parentName + ".addChild(\""+PrinterUtils.toCamelCase(item.getName())+"\");");
}
private static String setContent(Item item, String itemPrint){
if (item.getContent() != null)
itemPrint = itemPrint.replaceAll(";", ".setContent(\"" + item.getContent() + "\");");
return itemPrint;
}
}