dbModel.setXml(xml);
}
private Item dbModelItemToItem(DbModelItem dbModelItem)
{
ItemTypeDescriptor itd = getItemTypeDescriptor(dbModelItem.getItemType());
ByteArrayInputStream in = new ByteArrayInputStream(dbModelItem.getXml().getBytes());
Item item = null;
// Deserialize item descriptor file
try
{
if (itd.isContainedItem())
{
// Item is wrapped by a container class in its xml file
ItemContainer container = (ItemContainer) XMLDriver.getInstance().deserializeStream(ItemContainer.class, in);
item = container.getItem();
}
else
{
item = (Item) XMLDriver.getInstance().deserializeStream(itd.getItemClass(), in);
}
}
catch (XMLDriverException e)
{
getMsgContainer().addMsg(item, "Error reading component descriptor from database for component $0.", new Object[]
{
new ModelQualifier(dbModelItem.getModelName(), dbModelItem.getItemName(), dbModelItem.getItemType()).toUntypedString(), e
});
return null;
}
// Explicitely make this item an item of the specified type
item.setItemType(itd.getItemType());
return item;
}