* @param parser
*/
private PluginRegistry parsePluginRegistry(String tagName, XmlPullParser parser, boolean strict, String encoding)
throws IOException, XmlPullParserException
{
PluginRegistry pluginRegistry = new PluginRegistry();
pluginRegistry.setModelEncoding( encoding );
java.util.Set parsed = new java.util.HashSet();
int eventType = parser.getEventType();
boolean foundRoot = false;
while ( eventType != XmlPullParser.END_DOCUMENT )
{
if ( eventType == XmlPullParser.START_TAG )
{
if ( parser.getName().equals( tagName ) )
{
foundRoot = true;
}
else if ( parser.getName().equals( "updateInterval" ) )
{
if ( parsed.contains( "updateInterval" ) )
{
throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null);
}
parsed.add( "updateInterval" );
pluginRegistry.setUpdateInterval( getTrimmedValue( parser.nextText()) );
}
else if ( parser.getName().equals( "autoUpdate" ) )
{
if ( parsed.contains( "autoUpdate" ) )
{
throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null);
}
parsed.add( "autoUpdate" );
pluginRegistry.setAutoUpdate( getTrimmedValue( parser.nextText()) );
}
else if ( parser.getName().equals( "checkLatest" ) )
{
if ( parsed.contains( "checkLatest" ) )
{
throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null);
}
parsed.add( "checkLatest" );
pluginRegistry.setCheckLatest( getTrimmedValue( parser.nextText()) );
}
else if ( parser.getName().equals( "plugins" ) )
{
if ( parsed.contains( "plugins" ) )
{
throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null);
}
parsed.add( "plugins" );
java.util.List plugins = new java.util.ArrayList();
pluginRegistry.setPlugins( plugins );
while ( parser.nextTag() == XmlPullParser.START_TAG )
{
if ( parser.getName().equals( "plugin" ) )
{
plugins.add( parsePlugin( "plugin", parser, strict, encoding ) );