return pkgMetadata;
}
private PackageType processPackage(XMLStreamReader2 xmlStreamReader) throws Exception
{
PackageType pkgMeta = new PackageImpl();
for (int i = 0; i < xmlStreamReader.getAttributeCount(); i++)
{
String name = xmlStreamReader.getAttributeLocalName(i);
if ("name".equals(name))
{
pkgMeta.setName(xmlStreamReader.getAttributeValue(i));
}
else if ("version".equals(name))
{
pkgMeta.setVersion(xmlStreamReader.getAttributeValue(i));
}
}
int event = xmlStreamReader.next();
while (event != XMLEvent.END_ELEMENT)
{
switch (event)
{
case XMLEvent.START_ELEMENT :
String childElement = xmlStreamReader.getLocalName();
if (childElement.equals("system-requirements"))
{
SystemRequirementsType sysReqs = processSystemRequirements(pkgMeta, xmlStreamReader);
pkgMeta.setSystemRequirements(sysReqs);
}
else if (childElement.equals("file"))
{
InstallFileType file = processFiles(pkgMeta, xmlStreamReader);
pkgMeta.addFile(file);
}
else if (childElement.equals("pre-install"))
{
PreInstallType preInstall = processPreInstall(pkgMeta, xmlStreamReader);
pkgMeta.setPreInstall(preInstall);
}
else if (childElement.equals("post-install"))
{
PostInstallType postInstall = processPostInstall(pkgMeta, xmlStreamReader);
pkgMeta.setPostInstall(postInstall);
}
else if (childElement.equals("pre-uninstall"))
{
PreUnInstallType preUnInstall = processPreUnInstall(pkgMeta, xmlStreamReader);
pkgMeta.setPreUnInstall(preUnInstall);
}
else if (childElement.equals("post-uninstall"))
{
PostUnInstallType postUnInstall = processPostUnInstall(pkgMeta, xmlStreamReader);
pkgMeta.setPostUnInstall(postUnInstall);
}
else if (childElement.equals("dependencies"))
{
DependenciesType dependencies = this.processDependencies(pkgMeta, xmlStreamReader);
pkgMeta.setDependencies(dependencies);
}
break;
}