Class StandardModelFactory

  • All Implemented Interfaces:
    IModelFactory

    public class StandardModelFactory
    extends 
    implements IModelFactory
    Since:
    3.0.0
    Author:
    Daniel Fernández
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ICDATASection  content)
      Create a new CDATA Section event, containing the specified contents.
      ICloseElementTag  elementName)
      Create a new close tag, non-synthetic and non-unmatched.
      ICloseElementTag  elementName, boolean synthetic, boolean unmatched)
      Create a new close tag.
      IComment  content)
      Create a new Comment event, containing the specified contents.
      IDocType  publicId,  systemId)
      Create a DOCTYPE clause event with the specified public ID and system ID.
      IDocType  keyword,  elementName,  publicId,  systemId,  internalSubset)
      Create a DOCTYPE clause event, specifying all its components.
      IDocType createHTML5DocType()
      Create a DOCTYPE clause event for HTML5 (no type, no public or system id).
      IModel createModel()
      Creates a new, empty model.
      IModel createModel​(ITemplateEvent event)
      Creates a new model containing only one event (initially).
      IOpenElementTag  elementName)
      Create a new open element tag, non-synthetic.
      IOpenElementTag  elementName, boolean synthetic)
      Create a new open element tag.
      IOpenElementTag  elementName,  attributeName,  attributeValue)
      Create a new open element tag, non-synthetic, specifying one attribute.
      IOpenElementTag  elementName,  attributeName,  attributeValue, boolean synthetic)
      Create a new open element tag, specifying one attribute.
      IOpenElementTag  elementName, <,​> attributes, AttributeValueQuotes attributeValueQuotes, boolean synthetic)
      Create a new open element tag, specifying several attributes.
      IProcessingInstruction  target,  content)
      Create a new Processing Instruction event, specifying its target and content.
      IStandaloneElementTag  elementName)
      Create a new standalone element tag, non synthetic and minimized.
      IStandaloneElementTag  elementName, boolean synthetic, boolean minimized)
      Create a new standalone element tag.
      IStandaloneElementTag  elementName,  attributeName,  attributeValue)
      Create a new standalone element tag, non synthetic and minimized, specifying one attribute.
      IStandaloneElementTag  elementName,  attributeName,  attributeValue, boolean synthetic, boolean minimized)
      Create a new standalone element tag, specifying one attribute.
      IStandaloneElementTag  elementName, <,​> attributes, AttributeValueQuotes attributeValueQuotes, boolean synthetic, boolean minimized)
      Create a new standalone element tag, specifying several attributes.
      IText  text)
      Create a new Text event, specifying its contents.
      IXMLDeclaration  version,  encoding,  standalone)
      Create a new XML Declaration event, specifying values for all its attributes.
      IModel parse​(TemplateData ownerTemplate,  template)
      Parse the template specified as String and return the result as a model.
      <T extends IProcessableElementTag>
      T
      removeAttribute​(T tag,  attributeName)
      Create a new tag removing an existing attribute.
      <T extends IProcessableElementTag>
      T
      removeAttribute​(T tag,  prefix,  name)
      Create a new tag removing an existing attribute.
      <T extends IProcessableElementTag>
      T
      removeAttribute​(T tag, AttributeName attributeName)
      Create a new tag removing an existing attribute.
      <T extends IProcessableElementTag>
      T
      replaceAttribute​(T tag, AttributeName oldAttributeName,  attributeName,  attributeValue)
      Create a new tag object replacing an attribute in the original tag with another one.
      <T extends IProcessableElementTag>
      T
      replaceAttribute​(T tag, AttributeName oldAttributeName,  attributeName,  attributeValue, AttributeValueQuotes attributeValueQuotes)
      Create a new tag object replacing an attribute in the original tag with another one, also specifying the type of quotes to be used for representing the attribute value.
      <T extends IProcessableElementTag>
      T
      setAttribute​(T tag,  attributeName,  attributeValue)
      Create a new tag object that adds a new attribute to the existing ones in a specified tag.
      <T extends IProcessableElementTag>
      T
      setAttribute​(T tag,  attributeName,  attributeValue, AttributeValueQuotes attributeValueQuotes)
      Create a new tag object that adds a new attribute to the existing ones in a specified tag, also specifying the type of quotes to be used for representing the attribute value.
      • Methods inherited from class java.lang.

        , , , , , , , , , ,
    • Method Detail

      • createModel

        public IModel createModel​(ITemplateEvent event)
        Description copied from interface: IModelFactory

        Creates a new model containing only one event (initially).

        Specified by:
        createModel in interface IModelFactory
        Parameters:
        event - the event to be put into the newly created model.
        Returns:
        the new model.
      • parse

        public IModel parse​(TemplateData ownerTemplate,
                             template)
        Description copied from interface: IModelFactory

        Parse the template specified as String and return the result as a model.

        Note the template argument specified here is the template content itself, not a name to be resolved by a template resolver. The ownerTemplate argument is mandatory, and specifies the template that is being processed and as a part of which process the String template is being parsed.

        Specified by:
        parse in interface IModelFactory
        Parameters:
        ownerTemplate - the template being processed, for which the String template is being parsed into a model object.
        template - the String containing the contents of the template to be parsed.
        Returns:
        the IModel representing the parsed template.
      • createCDATASection

        public  content)
        Description copied from interface: IModelFactory

        Create a new CDATA Section event, containing the specified contents.

        Specified by:
        createCDATASection in interface IModelFactory
        Parameters:
        content - the content (i.e. without prefix or suffix) of the new CDATA Section.
        Returns:
        the new CDATA Section.
      • createComment

        public  content)
        Description copied from interface: IModelFactory

        Create a new Comment event, containing the specified contents.

        Specified by:
        createComment in interface IModelFactory
        Parameters:
        content - the content (i.e. without prefix or suffix) of the new Comment.
        Returns:
        the new Comment.
      • createHTML5DocType

        public IDocType createHTML5DocType()
        Description copied from interface: IModelFactory

        Create a DOCTYPE clause event for HTML5 (no type, no public or system id).

        Specified by:
        createHTML5DocType in interface IModelFactory
        Returns:
        the new DOCTYPE, corresponding with an HTML5 DOCTYPE clause.
      • createDocType

        public  publicId,
                                       systemId)
        Description copied from interface: IModelFactory

        Create a DOCTYPE clause event with the specified public ID and system ID.

        Specified by:
        createDocType in interface IModelFactory
        Parameters:
        publicId - the public ID to be applied (might be null).
        systemId - the system ID to be applied (might be null if public ID is also null).
        Returns:
        the new DOCTPYE.
      • createDocType

        public  keyword,
                                       elementName,
                                       publicId,
                                       systemId,
                                       internalSubset)
        Description copied from interface: IModelFactory

        Create a DOCTYPE clause event, specifying all its components.

        Specified by:
        createDocType in interface IModelFactory
        Parameters:
        keyword - the keyword value (should be DOCTYPE, but case might vary).
        elementName - the root element name.
        publicId - the public ID (might be null).
        systemId - the system ID (might be null).
        internalSubset - the internal subset (might be null).
        Returns:
        the new DOCTYPE.
      • createProcessingInstruction

        public  target,
                                                                   content)
        Description copied from interface: IModelFactory

        Create a new Processing Instruction event, specifying its target and content.

        Specified by:
        createProcessingInstruction in interface IModelFactory
        Parameters:
        target - the target value.
        content - the content value.
        Returns:
        the new Processing Instruction.
      • createText

        public  text)
        Description copied from interface: IModelFactory

        Create a new Text event, specifying its contents.

        Specified by:
        createText in interface IModelFactory
        Parameters:
        text - the text contents.
        Returns:
        the new Text.
      • createXMLDeclaration

        public  version,
                                                     encoding,
                                                     standalone)
        Description copied from interface: IModelFactory

        Create a new XML Declaration event, specifying values for all its attributes.

        Specified by:
        createXMLDeclaration in interface IModelFactory
        Parameters:
        version - the version value (might be null).
        encoding - the encoding value (might be null).
        standalone - the standalone value (might be null).
        Returns:
        the new XML Declaration.
      • createStandaloneElementTag

        public  elementName,
                                                                 attributeName,
                                                                 attributeValue)
        Description copied from interface: IModelFactory

        Create a new standalone element tag, non synthetic and minimized, specifying one attribute.

        This is equivalent to calling IModelFactory.createStandaloneElementTag(String, String, String, boolean, boolean) with false as a value for synthetic and true as a value for minimized.

        Specified by:
        createStandaloneElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributeName - the name of the attribute to be added to the tag.
        attributeValue - the value of the attribute to be added to the tag.
        Returns:
        the standalone tag.
      • createStandaloneElementTag

        public  elementName,
                                                                boolean synthetic,
                                                                boolean minimized)
        Description copied from interface: IModelFactory

        Create a new standalone element tag.

        Specified by:
        createStandaloneElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        minimized - whether the tag is minimized or not, i.e. whether it ends in /> or simply >.
        Returns:
        the standalone tag.
      • createStandaloneElementTag

        public  elementName,
                                                                 attributeName,
                                                                 attributeValue,
                                                                boolean synthetic,
                                                                boolean minimized)
        Description copied from interface: IModelFactory

        Create a new standalone element tag, specifying one attribute.

        Specified by:
        createStandaloneElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributeName - the name of the attribute to be added to the tag.
        attributeValue - the value of the attribute to be added to the tag.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        minimized - whether the tag is minimized or not, i.e. whether it ends in /> or simply >.
        Returns:
        the standalone tag.
      • createStandaloneElementTag

        public  elementName,
                                                                <,​> attributes,
                                                                AttributeValueQuotes attributeValueQuotes,
                                                                boolean synthetic,
                                                                boolean minimized)
        Description copied from interface: IModelFactory

        Create a new standalone element tag, specifying several attributes.

        Specified by:
        createStandaloneElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributes - the map of attribute names and values.
        attributeValueQuotes - the type of quotes to be used for representing the attribute values.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        minimized - whether the tag is minimized or not, i.e. whether it ends in /> or simply >.
        Returns:
        the standalone tag.
      • createOpenElementTag

        public  elementName,
                                                     attributeName,
                                                     attributeValue)
        Description copied from interface: IModelFactory

        Create a new open element tag, non-synthetic, specifying one attribute.

        This is equivalent to calling IModelFactory.createOpenElementTag(String, String, String, boolean) with false as a value for synthetic.

        Specified by:
        createOpenElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributeName - the name of the attribute to be added to the tag.
        attributeValue - the value of the attribute to be added to the tag.
        Returns:
        the open tag.
      • createOpenElementTag

        public  elementName,
                                                    boolean synthetic)
        Description copied from interface: IModelFactory

        Create a new open element tag.

        Specified by:
        createOpenElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        Returns:
        the open tag.
      • createOpenElementTag

        public  elementName,
                                                     attributeName,
                                                     attributeValue,
                                                    boolean synthetic)
        Description copied from interface: IModelFactory

        Create a new open element tag, specifying one attribute.

        Specified by:
        createOpenElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributeName - the name of the attribute to be added to the tag.
        attributeValue - the value of the attribute to be added to the tag.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        Returns:
        the open tag.
      • createOpenElementTag

        public  elementName,
                                                    <,​> attributes,
                                                    AttributeValueQuotes attributeValueQuotes,
                                                    boolean synthetic)
        Description copied from interface: IModelFactory

        Create a new open element tag, specifying several attributes.

        Specified by:
        createOpenElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        attributes - the map of attribute names and values.
        attributeValueQuotes - the type of quotes to be used for representing the attribute values.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        Returns:
        the open tag.
      • setAttribute

        public <T extends IProcessableElementTag> T setAttribute​(T tag,
                                                                  attributeName,
                                                                  attributeValue)
        Description copied from interface: IModelFactory

        Create a new tag object that adds a new attribute to the existing ones in a specified tag.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        Specified by:
        setAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        attributeName - the name of the attribute to be added.
        attributeValue - the value of the attribute to be added.
        Returns:
        the new tag.
      • setAttribute

        public <T extends IProcessableElementTag> T setAttribute​(T tag,
                                                                  attributeName,
                                                                  attributeValue,
                                                                 AttributeValueQuotes attributeValueQuotes)
        Description copied from interface: IModelFactory

        Create a new tag object that adds a new attribute to the existing ones in a specified tag, also specifying the type of quotes to be used for representing the attribute value.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        Specified by:
        setAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        attributeName - the name of the attribute to be added.
        attributeValue - the value of the attribute to be added.
        attributeValueQuotes - the type of quotes to be used for representing the attribute value.
        Returns:
        the new tag.
      • replaceAttribute

        public <T extends IProcessableElementTag> T replaceAttribute​(T tag,
                                                                     AttributeName oldAttributeName,
                                                                      attributeName,
                                                                      attributeValue)
        Description copied from interface: IModelFactory

        Create a new tag object replacing an attribute in the original tag with another one.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        If the attribute being replaced does not exist, the new one will be created as if IModelFactory.setAttribute(IProcessableElementTag, String, String) was called instead. If the old attribute does exist, its position in the tag as well as its quote type will be used.

        Specified by:
        replaceAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        oldAttributeName - the name of the attribute to be replaced.
        attributeName - the name of the attribute to be added.
        attributeValue - the value of the attribute to be added.
        Returns:
        the new tag.
      • replaceAttribute

        public <T extends IProcessableElementTag> T replaceAttribute​(T tag,
                                                                     AttributeName oldAttributeName,
                                                                      attributeName,
                                                                      attributeValue,
                                                                     AttributeValueQuotes attributeValueQuotes)
        Description copied from interface: IModelFactory

        Create a new tag object replacing an attribute in the original tag with another one, also specifying the type of quotes to be used for representing the attribute value.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        If the attribute being replaced does not exist, the new one will be created as if IModelFactory.setAttribute(IProcessableElementTag, String, String) was called instead. If the old attribute does exist, its position in the tag will be used.

        Specified by:
        replaceAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        oldAttributeName - the name of the attribute to be replaced.
        attributeName - the name of the attribute to be added.
        attributeValue - the value of the attribute to be added.
        attributeValueQuotes - the type of quotes to be used for representing the attribute value.
        Returns:
        the new tag.
      • removeAttribute

        public <T extends IProcessableElementTag> T removeAttribute​(T tag,
                                                                     attributeName)
        Description copied from interface: IModelFactory

        Create a new tag removing an existing attribute.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        If the attribute being removed does not exist, nothing will be done and the same tag object will be returned.

        Specified by:
        removeAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        attributeName - the name of the attribute to be removed.
        Returns:
        the new tag.
      • removeAttribute

        public <T extends IProcessableElementTag> T removeAttribute​(T tag,
                                                                     prefix,
                                                                     name)
        Description copied from interface: IModelFactory

        Create a new tag removing an existing attribute.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        If the attribute being removed does not exist, nothing will be done and the same tag object will be returned.

        Specified by:
        removeAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        prefix - the prefix of the attribute (might be null).
        name - the name of the attribute.
        Returns:
        the new tag.
      • removeAttribute

        public <T extends IProcessableElementTag> T removeAttribute​(T tag,
                                                                    AttributeName attributeName)
        Description copied from interface: IModelFactory

        Create a new tag removing an existing attribute.

        Note that this method should create a new object because ITemplateEvent implementations are immutable. Also, the created tag will be of the same type (i.e. standalone or open) as the specified as argument.

        If the attribute being removed does not exist, nothing will be done and the same tag object will be returned.

        Specified by:
        removeAttribute in interface IModelFactory
        Type Parameters:
        T - the type of the original and new tags.
        Parameters:
        tag - the original tag.
        attributeName - the attribute name.
        Returns:
        the new tag.
      • createCloseElementTag

        public  elementName,
                                                      boolean synthetic,
                                                      boolean unmatched)
        Description copied from interface: IModelFactory

        Create a new close tag.

        Specified by:
        createCloseElementTag in interface IModelFactory
        Parameters:
        elementName - the element name.
        synthetic - whether the tag is synthetic or not. Synthetic tags are used for balancing of markup and will not appear on output.
        unmatched - whether this tag should be considered unmatched, i.e. there is no corresponding previous open tag for it.
        Returns:
        the close tag.