@Override public IOpenElementTag createOpenElementTag(final String elementName, final boolean synthetic) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); return new OpenElementTag(this.templateMode, elementDefinition, elementName, null, synthetic); }
@Override public ICloseElementTag createCloseElementTag(final String elementName, final boolean synthetic, final boolean unmatched) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); return new CloseElementTag(this.templateMode, elementDefinition, elementName, null, synthetic, unmatched); }
@Override public IStandaloneElementTag createStandaloneElementTag(final String elementName, final boolean synthetic, final boolean minimized) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); return new StandaloneElementTag(this.templateMode, elementDefinition, elementName, null, synthetic, minimized); }
@Override public void handleCloseElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws TextParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); this.templateHandler.handleCloseElement( new CloseElementTag( this.templateMode, elementDefinition, elementCompleteName, null, false, false, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleCloseElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final String trailingWhiteSpace; if (this.currentElementInnerWhiteSpaces.isEmpty()) { trailingWhiteSpace = null; } else { trailingWhiteSpace = this.currentElementInnerWhiteSpaces.get(0); } this.templateHandler.handleCloseElement( new CloseElementTag( this.templateMode, elementDefinition, elementCompleteName, trailingWhiteSpace, false, false, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleAutoCloseElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final String trailingWhiteSpace; if (this.currentElementInnerWhiteSpaces.isEmpty()) { trailingWhiteSpace = null; } else { trailingWhiteSpace = this.currentElementInnerWhiteSpaces.get(0); } this.templateHandler.handleCloseElement( new CloseElementTag( this.templateMode, elementDefinition, elementCompleteName, trailingWhiteSpace, true, false, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleUnmatchedCloseElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final String trailingWhiteSpace; if (this.currentElementInnerWhiteSpaces.isEmpty()) { trailingWhiteSpace = null; } else { trailingWhiteSpace = this.currentElementInnerWhiteSpaces.get(0); } this.templateHandler.handleCloseElement( new CloseElementTag( this.templateMode, elementDefinition, elementCompleteName, trailingWhiteSpace, false, true, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleAutoOpenElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final Attributes attributes; if (this.currentElementAttributes.isEmpty() && this.currentElementInnerWhiteSpaces.isEmpty()) { attributes = null; } else { final Attribute[] attributesArr = (this.currentElementAttributes.isEmpty()? Attributes.EMPTY_ATTRIBUTE_ARRAY : this.currentElementAttributes.toArray(new Attribute[this.currentElementAttributes.size()])); final String[] innerWhiteSpaces = this.currentElementInnerWhiteSpaces.toArray(new String[this.currentElementInnerWhiteSpaces.size()]); attributes = new Attributes(attributesArr, innerWhiteSpaces); } this.templateHandler.handleOpenElement( new OpenElementTag( this.templateMode, elementDefinition, elementCompleteName, attributes, true, // synthetic = true this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleStandaloneElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final boolean minimized, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final Attributes attributes; if (this.currentElementAttributes.isEmpty() && this.currentElementInnerWhiteSpaces.isEmpty()) { attributes = null; } else { final Attribute[] attributesArr = (this.currentElementAttributes.isEmpty()? Attributes.EMPTY_ATTRIBUTE_ARRAY : this.currentElementAttributes.toArray(new Attribute[this.currentElementAttributes.size()])); final String[] innerWhiteSpaces = this.currentElementInnerWhiteSpaces.toArray(new String[this.currentElementInnerWhiteSpaces.size()]); attributes = new Attributes(attributesArr, innerWhiteSpaces); } this.templateHandler.handleStandaloneElement( new StandaloneElementTag( this.templateMode, elementDefinition, elementCompleteName, attributes, false, minimized, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleOpenElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws ParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final Attributes attributes; if (this.currentElementAttributes.isEmpty() && this.currentElementInnerWhiteSpaces.isEmpty()) { attributes = null; } else { final Attribute[] attributesArr = (this.currentElementAttributes.isEmpty()? Attributes.EMPTY_ATTRIBUTE_ARRAY : this.currentElementAttributes.toArray(new Attribute[this.currentElementAttributes.size()])); final String[] innerWhiteSpaces = this.currentElementInnerWhiteSpaces.toArray(new String[this.currentElementInnerWhiteSpaces.size()]); attributes = new Attributes(attributesArr, innerWhiteSpaces); } this.templateHandler.handleOpenElement( new OpenElementTag( this.templateMode, elementDefinition, elementCompleteName, attributes, false, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleStandaloneElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final boolean minimized, final int line, final int col) throws TextParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final Attributes attributes; if (this.currentElementAttributes.isEmpty()) { attributes = null; } else { final Attribute[] attributesArr = (this.currentElementAttributes.isEmpty()? Attributes.EMPTY_ATTRIBUTE_ARRAY : this.currentElementAttributes.toArray(new Attribute[this.currentElementAttributes.size()])); final String[] innerWhiteSpaces; if (attributesArr.length < SYNTHETIC_INNER_WHITESPACES.length) { innerWhiteSpaces = SYNTHETIC_INNER_WHITESPACES[attributesArr.length]; } else { innerWhiteSpaces = new String[attributesArr.length]; Arrays.fill(innerWhiteSpaces, Attributes.DEFAULT_WHITE_SPACE); } attributes = new Attributes(attributesArr, innerWhiteSpaces); } this.templateHandler.handleStandaloneElement( new StandaloneElementTag( this.templateMode, elementDefinition, elementCompleteName, attributes, false, minimized, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public void handleOpenElementEnd( final char[] buffer, final int nameOffset, final int nameLen, final int line, final int col) throws TextParseException { final String elementCompleteName = new String(buffer, nameOffset, nameLen); final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementCompleteName); final Attributes attributes; if (this.currentElementAttributes.isEmpty()) { attributes = null; } else { final Attribute[] attributesArr = (this.currentElementAttributes.isEmpty()? Attributes.EMPTY_ATTRIBUTE_ARRAY : this.currentElementAttributes.toArray(new Attribute[this.currentElementAttributes.size()])); final String[] innerWhiteSpaces; if (attributesArr.length < SYNTHETIC_INNER_WHITESPACES.length) { innerWhiteSpaces = SYNTHETIC_INNER_WHITESPACES[attributesArr.length]; } else { innerWhiteSpaces = new String[attributesArr.length]; Arrays.fill(innerWhiteSpaces, Attributes.DEFAULT_WHITE_SPACE); } attributes = new Attributes(attributesArr, innerWhiteSpaces); } this.templateHandler.handleOpenElement( new OpenElementTag( this.templateMode, elementDefinition, elementCompleteName, attributes, false, this.templateName, this.lineOffset + this.currentElementLine, (this.currentElementLine == 1? this.colOffset : 0) + this.currentElementCol)); }
@Override public IOpenElementTag createOpenElementTag(final String elementName, final Map<String, String> attributes, final AttributeValueQuotes attributeValueQuotes, final boolean synthetic) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); final Attributes attributesObj = buildAttributes(buildAttributeArray(attributes, attributeValueQuotes)); return new OpenElementTag(this.templateMode, elementDefinition, elementName, attributesObj, synthetic); }
@Override public IStandaloneElementTag createStandaloneElementTag(final String elementName, final String attributeName, final String attributeValue, final boolean synthetic, final boolean minimized) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); final Attributes attributes = buildAttributes(new Attribute[] { buildAttribute(attributeName, attributeValue, null) }); return new StandaloneElementTag(this.templateMode, elementDefinition, elementName, attributes, synthetic, minimized); }
@Override public IStandaloneElementTag createStandaloneElementTag(final String elementName, final Map<String, String> attributes, final AttributeValueQuotes attributeValueQuotes, final boolean synthetic, final boolean minimized) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); final Attributes attributesObj = buildAttributes(buildAttributeArray(attributes, attributeValueQuotes)); return new StandaloneElementTag(this.templateMode, elementDefinition, elementName, attributesObj, synthetic, minimized); }
@Override public IOpenElementTag createOpenElementTag(final String elementName, final String attributeName, final String attributeValue, final boolean synthetic) { final ElementDefinition elementDefinition = this.elementDefinitions.forName(this.templateMode, elementName); final Attributes attributes = buildAttributes(new Attribute[] { buildAttribute(attributeName, attributeValue, null) }); return new OpenElementTag(this.templateMode, elementDefinition, elementName, attributes, synthetic); }