return repository;
}
private Item parseItem(Node parent)
{
Item item = null;
if(Platform.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new Platform();
}
else if(AddOn.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new AddOn();
}
else if(Extra.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new Extra();
}
else if(Sample.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new Sample();
}
else if(Doc.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new Doc();
}
else if(Tool.ELEMENT_NAME.equals(parent.getNodeName()))
{
item = new Tool();
}
if(item!=null)
{
NodeList children = parent.getChildNodes();
for(int i=0; i<children.getLength(); i++)
{
Node node = children.item(i);
if(Item.NAME.equals(node.getNodeName()))
{
item.setName(node.getTextContent());
}
else if(Item.API_LEVEL.equals(node.getNodeName()))
{
item.setApiLevel(node.getTextContent());
}
else if(Item.VERSION.equals(node.getNodeName()))
{
item.setVersion(node.getTextContent());
}
else if(Item.VENDOR.equals(node.getNodeName()))
{
item.setVendor(node.getTextContent());
}
else if(Item.CODENAME.equals(node.getNodeName()))
{
item.setCodename(node.getTextContent());
}
else if(Item.REVISION.equals(node.getNodeName()))
{
item.setRevision(node.getTextContent());
}
else if(Item.MIN_TOOLS_REV.equals(node.getNodeName()))
{
item.setMinimumToolsRevision(node.getTextContent());
}
else if(Item.DESCRIPTION.equals(node.getNodeName()))
{
item.setDescription(node.getTextContent());
}
else if(Item.DESC_URL.equals(node.getNodeName()))
{
item.setDescriptionUrl(node.getTextContent());
}
else if(Item.PATH.equals(node.getNodeName()))
{
item.setPath(node.getTextContent());
}
else if(Item.ARCHIVES.equals(node.getNodeName()))
{
item.setArchives(parseArchives(node));
}
else if(Item.LIBS.equals(node.getNodeName()))
{
item.setLibs(parseLibs(node));
}
else if(Item.LICENSE.equals(node.getNodeName()))
{
// TODO: implement this
logger.debug("Passing license...");
}
else if(Item.OBSOLETE.equals(node.getNodeName()))
{
item.setObsolete(true);
}
}
}
return item;