Class KStringTag<TARGET>

java.lang.Object
com.iizix.text.KStringTag<TARGET>
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
KStringHTMLTag, KStringPLAINTag

public abstract class KStringTag<TARGET> extends Object implements Cloneable
Base class for Tags (HTMLTag and PlainTag) in KString.
Author:
Christopher Mindus
  • Constructor Details

    • KStringTag

      public KStringTag(KStringTag.Type type, int position, LinkedHashMap<String,String> attributes)
      Constructs a tag.
      Parameters:
      type - The connector type.
      position - The position in the character based and parsed string.
      attributes - The attributes for the tag.
  • Method Details

    • disposeTagReference

      protected void disposeTagReference()
      Disposes of the tag reference, used in the Editor for references.
    • setSourceLocation

      public final void setSourceLocation(int startPos, int endPos) throws IllegalArgumentException
      Sets the source position for the tag. This can only be done once, next time an IllegalArgumentException is thrown.
      Parameters:
      startPos - The start position in the source string.
      endPos - The end position in the source string.
      Throws:
      IllegalArgumentException
    • getType

      public final KStringTag.Type getType()
      Gets the type of this tag.
    • getSourcePosition

      public final int getSourcePosition()
      Gets the source position of this tag in the source string.
      Returns:
      The start position of the tag.
    • getSourceEndPosition

      public final int getSourceEndPosition()
      Gets the ending position of this tag in the source string.
      Returns:
      The end position of the tag.
    • getSourceLength

      public final int getSourceLength()
      Gets the length of this tag in the source string.
      Returns:
      The length in characters of the tag.
    • isReferenceTag

      public abstract boolean isReferenceTag()
      Checks if this tag is of reference type, i.e. for HTML, the tags A, IMG, IZ. For PLAIN KString type, this method always returns true.
    • getReference

      public String getReference()
      Gets the reference of this tag.
      Returns:
      The reference, or null for none.
    • setReference

      public abstract boolean setReference(String ref)
      Updates the tag reference.
      Parameters:
      ref - The new reference.
      Returns:
      true if changed, false for no change.
    • getReferenceClass

      public Class<?> getReferenceClass()
      Returns the reference class used by this tag, e.g. KStringProp for text table, or the image class IImageTarget.class.
      Returns:
      The class, or null for no references.
    • appendPLAINAttributes

      public final void appendPLAINAttributes(StringBuilder useme)
      Appends the attributes for PLAIN raw format.
    • appendPLAINValue

      public static void appendPLAINValue(StringBuilder useme, String value)
      Appends a string as quoted value. The chosen quote can be either single- or double-quote, whichever is shortest.
    • appendHTMLAttributes

      public final void appendHTMLAttributes(StringBuilder useme, IKStringInfoProvider provider)
      Appends the attributes for HTML raw format.
    • appendHTMLAttributesSkip

      public final void appendHTMLAttributesSkip(StringBuilder useme, IKStringInfoProvider provider, String... skipAttributes)
      Appends the attributes for HTML raw format.
    • appendHTMLAttributes

      public final void appendHTMLAttributes(StringBuilder useme, IKStringInfoProvider provider, String... possibleAttributeList)
      Appends the attributes for HTML raw format that are present in the "possibleAttributeList".
    • getAttribute

      public final String getAttribute(String attributeName)
      Gets the attribute value.
      Parameters:
      attributeName - The name of the attribute.
      Returns:
      The value, or null if the attribute is not present.
    • setAttribute

      public final boolean setAttribute(String attributeName, String value)
      Updates an attribute value or removes it.
      Parameters:
      attributeName - The attribute name.
      value - The value to set, or null to remove the attribute.
      Returns:
      true if changed, false otherwise.
    • willLoseFormatting

      public abstract boolean willLoseFormatting()
      Checks if this string will lose formatting when translated to PLAIN. Note that translating PLAIN to HTML never loses formatting.
    • getPLAINTagText

      public abstract String getPLAINTagText(StringBuilder useme)
      Gets the "unparsed" string representation of this tag in the PLAIN format, i.e. a HTML tag will reformat or translate itself for PLAIN, or vice versa.
    • getHTMLTagText

      public abstract String getHTMLTagText(StringBuilder useme, IKStringInfoProvider provider)
      Gets the "unparsed" string representation of this tag in the HTML format, i.e. a PLAIN tag will reformat or translate itself for HTML, or vice versa.
      Parameters:
      useme - Temporary StringBuilder for any use.
      provider - The information provider or null for none.
    • getPLAINString

      public abstract String getPLAINString(StringBuilder useme, IKStringInfoProvider provider)
      Gets the string representation of this tag in the PLAIN format, i.e. a HTML tag will reformat or translate itself for PLAIN, or vice versa.
      Parameters:
      useme - Temporary StringBuilder for any use.
      provider - The information provider or null for none.
    • getHTMLString

      public abstract String getHTMLString(StringBuilder useme, IKStringInfoProvider provider)
      Gets the string representation of this tag in the HTML format, i.e. a PLAIN tag will reformat or translate itself for HTML, or vice versa.
      Parameters:
      useme - Temporary StringBuilder for any use.
      provider - The information provider or null for none.
    • equals

      public boolean equals(Object obj)
      Equality check: tags must be of same class (i.e. exactly same type) and have the same attributes.
      Overrides:
      equals in class Object
    • equalsName

      public boolean equalsName(KStringTag<?> kst)
      Checks for the same "name" (tag ordinal and closing tag for HTML, tag name for PLAIN).
    • clone

      protected KStringTag<TARGET> clone()
      Cloneable.
      Overrides:
      clone in class Object
    • getReferenceType

      public final IPropReference.RefType getReferenceType()
      Gets the reference type.
      Returns:
      The reference type (shown for reference view in the Designer).
    • isReferenceValid

      public boolean isReferenceValid(KStringHolder holder, GProp<?> gp)
      Validates a reference.
      Parameters:
      holder - The KString holder.
      gp - The reference found.
      Returns:
      Validates the reference.
    • getReferenceError

      public String getReferenceError()
      Gets the validation error.
      Returns:
      null for OK, otherwise the error text.
    • resolve

      public void resolve(KStringHolder holder, boolean doReCheck, GEvent triggerEvent)
      Resolves the reference.
      Parameters:
      holder - The KString holder.
      doReCheck - Rechecks the references.
      triggerEvent - The trigger event.
    • verify

      public void verify(KStringHolder holder, PropVerification verification, String location, int id)
      Verifies the KString for a KString holder.
      Parameters:
      holder - The KString holder.
      verification - The property verification class.
      location - The location.
      id - The tag ID.
    • isRefreshRequired

      public boolean isRefreshRequired(RefreshEvent event)
      Returns whether the tags needs a refresh for the specified refresh type.
      Parameters:
      event - The refresh event.
      Returns:
      true for refresh needed, false otherwise.
    • isRefreshRequired

      public boolean isRefreshRequired(GEvent event, TARGET target)
      Upon a property event received on the target reference property (or its children), this method verifies if the event would affect the KString contents needing to be refreshed.
      Parameters:
      event - The event.
      target - The target property for the tag.
      Returns:
      true to refresh the KString, false not to.