📄 bobberarchetypexpp3reader.java
字号:
* @param attribute * @throws XmlPullParserException * @return short */ public short getShortValue(String s, String attribute, XmlPullParser parser, boolean strict) throws XmlPullParserException { if ( s != null ) { try { return Short.valueOf( s ).shortValue(); } catch ( NumberFormatException e ) { if ( strict ) { throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a short integer", parser, null ); } } } return 0; } //-- short getShortValue(String, String, XmlPullParser, boolean) /** * Method getTrimmedValue. * * @param s * @return String */ public String getTrimmedValue(String s) { if ( s != null ) { s = s.trim(); } return s; } //-- String getTrimmedValue(String) /** * Method parseBobberArchetype. * * @param tagName * @param strict * @param parser * @throws IOException * @throws XmlPullParserException * @return BobberArchetype */ private BobberArchetype parseBobberArchetype(String tagName, XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException { BobberArchetype bobberArchetype = new BobberArchetype(); 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( "id" ) ) { if ( parsed.contains( "id" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "id" ); bobberArchetype.setId( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "allowPartial" ) ) { if ( parsed.contains( "allowPartial" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "allowPartial" ); bobberArchetype.setAllowPartial( getBooleanValue( getTrimmedValue( parser.nextText()), "allowPartial", parser, "false" ) ); } else if ( parser.getName().equals( "variables" ) ) { if ( parsed.contains( "variables" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "variables" ); java.util.List variables = new java.util.ArrayList(); bobberArchetype.setVariables( variables ); while ( parser.nextTag() == XmlPullParser.START_TAG ) { if ( parser.getName().equals( "variable" ) ) { variables.add( parseVariable( "variable", parser, strict ) ); } else if ( strict ) { throw new XmlPullParserException( "Unrecognised association: '" + parser.getName() + "'", parser, null ); } else { // swallow up to end tag since this is not valid while ( parser.next() != XmlPullParser.END_TAG ) {} } } } else if ( parser.getName().equals( "templates" ) ) { if ( parsed.contains( "templates" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "templates" ); java.util.List templates = new java.util.ArrayList(); bobberArchetype.setTemplates( templates ); while ( parser.nextTag() == XmlPullParser.START_TAG ) { if ( parser.getName().equals( "template" ) ) { templates.add( parseTemplate( "template", parser, strict ) ); } else if ( strict ) { throw new XmlPullParserException( "Unrecognised association: '" + parser.getName() + "'", parser, null ); } else { // swallow up to end tag since this is not valid while ( parser.next() != XmlPullParser.END_TAG ) {} } } } else if ( !foundRoot && strict ) { throw new XmlPullParserException( "Unrecognised tag: '" + parser.getName() + "'", parser, null ); } } eventType = parser.next(); } return bobberArchetype; } //-- BobberArchetype parseBobberArchetype(String, XmlPullParser, boolean) /** * Method parseTemplate. * * @param tagName * @param strict * @param parser * @throws IOException * @throws XmlPullParserException * @return Template */ private Template parseTemplate(String tagName, XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException { Template template = new Template(); java.util.Set parsed = new java.util.HashSet(); while ( parser.nextTag() == XmlPullParser.START_TAG ) { if ( parser.getName().equals( "file" ) ) { if ( parsed.contains( "file" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "file" ); template.setFile( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "output" ) ) { if ( parsed.contains( "output" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "output" ); template.setOutput( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "dependsOnVar" ) ) { if ( parsed.contains( "dependsOnVar" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "dependsOnVar" ); template.setDependsOnVar( getTrimmedValue( parser.nextText()) ); } else { if ( strict ) { throw new XmlPullParserException( "Unrecognised tag: '" + parser.getName() + "'", parser, null ); } else { // swallow up to end tag since this is not valid while ( parser.next() != XmlPullParser.END_TAG ) {} } } } return template; } //-- Template parseTemplate(String, XmlPullParser, boolean) /** * Method parseVariable. * * @param tagName * @param strict * @param parser * @throws IOException * @throws XmlPullParserException * @return Variable */ private Variable parseVariable(String tagName, XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException { Variable variable = new Variable(); java.util.Set parsed = new java.util.HashSet(); while ( parser.nextTag() == XmlPullParser.START_TAG ) { if ( parser.getName().equals( "name" ) ) { if ( parsed.contains( "name" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "name" ); variable.setName( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "description" ) ) { if ( parsed.contains( "description" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "description" ); variable.setDescription( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "defvalue" ) ) { if ( parsed.contains( "defvalue" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "defvalue" ); variable.setDefvalue( getTrimmedValue( parser.nextText()) ); } else if ( parser.getName().equals( "variables" ) ) { if ( parsed.contains( "variables" ) ) { throw new XmlPullParserException( "Duplicated tag: '" + parser.getName() + "'", parser, null ); } parsed.add( "variables" ); java.util.List variables = new java.util.ArrayList(); variable.setVariables( variables ); while ( parser.nextTag() == XmlPullParser.START_TAG ) { if ( parser.getName().equals( "variable" ) ) { variables.add( parseVariable( "variable", parser, strict ) ); } else if ( strict ) { throw new XmlPullParserException( "Unrecognised association: '" + parser.getName() + "'", parser, null ); } else { // swallow up to end tag since this is not valid while ( parser.next() != XmlPullParser.END_TAG ) {} } } } else { if ( strict ) { throw new XmlPullParserException( "Unrecognised tag: '" + parser.getName() + "'", parser, null ); } else { // swallow up to end tag since this is not valid while ( parser.next() != XmlPullParser.END_TAG ) {} } } } return variable; } //-- Variable parseVariable(String, XmlPullParser, boolean) /** * @see ReaderFactory#newXmlReader * * @param reader * @param strict * @throws IOException * @throws XmlPullParserException * @return BobberArchetype */ public BobberArchetype read(Reader reader, boolean strict) throws IOException, XmlPullParserException { XmlPullParser parser = new MXParser(); parser.setInput( reader ); if ( addDefaultEntities ) { // ---------------------------------------------------------------------- // Latin 1 entities // ---------------------------------------------------------------------- parser.defineEntityReplacementText( "nbsp", "\u00a0" ); parser.defineEntityReplacementText( "iexcl", "\u00a1" ); parser.defineEntityReplacementText( "cent", "\u00a2" ); parser.defineEntityReplacementText( "pound", "\u00a3" ); parser.defineEntityReplacementText( "curren", "\u00a4" ); parser.defineEntityReplacementText( "yen", "\u00a5" ); parser.defineEntityReplacementText( "brvbar", "\u00a6" );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -