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 Link icon

    • KStringTag Link icon

      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 Link icon

    • disposeTagReference Link icon

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

      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 Link icon

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

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

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

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

      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 Link icon

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

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

      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 Link icon

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

      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 Link icon

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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.