Class Utils

java.lang.Object
com.itextpdf.xmp.impl.Utils
All Implemented Interfaces:
XMPConst

public class Utils extends Object implements XMPConst
Utility functions for the XMPToolkit implementation.
Since:
06.06.2006
  • Field Details

    • UUID_SEGMENT_COUNT

      public static final int UUID_SEGMENT_COUNT
      segments of a UUID
      See Also:
    • UUID_LENGTH

      public static final int UUID_LENGTH
      length of a UUID
      See Also:
    • xmlNameStartChars

      private static boolean[] xmlNameStartChars
      table of XML name start chars (invalid input: '<'= 0xFF)
    • xmlNameChars

      private static boolean[] xmlNameChars
      table of XML name chars (invalid input: '<'= 0xFF)
  • Constructor Details

    • Utils

      private Utils()
      Private constructor
  • Method Details

    • normalizeLangValue

      public static String normalizeLangValue(String value)
      Normalize an xml:lang value so that comparisons are effectively case insensitive as required by RFC 3066 (which superceeds RFC 1766). The normalization rules:
      • The primary subtag is lower case, the suggested practice of ISO 639.
      • All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166.
      • All other subtags are lower case.
      Parameters:
      value - raw value
      Returns:
      Returns the normalized value.
    • splitNameAndValue

      static String[] splitNameAndValue(String selector)
      Split the name and value parts for field and qualifier selectors:
      • [qualName="value"] - An element in an array of structs, chosen by a field value.
      • [?qualName="value"] - An element in an array, chosen by a qualifier value.
      The value portion is a string quoted by ''' or '"'. The value may contain any character including a doubled quoting character. The value may be empty. Note: It is assumed that the expression is formal correct
      Parameters:
      selector - the selector
      Returns:
      Returns an array where the first entry contains the name and the second the value.
    • isInternalProperty

      static boolean isInternalProperty(String schema, String prop)
      Parameters:
      schema - a schema namespace
      prop - an XMP Property
      Returns:
      Returns true if the property is defined as "Internal Property", see XMP Specification.
    • checkUUIDFormat

      static boolean checkUUIDFormat(String uuid)
      Check some requirements for an UUID:
      • Length of the UUID is 32
      • The Delimiter count is 4 and all the 4 delimiter are on their right position (8,13,18,23)
      Parameters:
      uuid - uuid to test
      Returns:
      true - this is a well formed UUID, false - UUID has not the expected format
    • isXMLName

      public static boolean isXMLName(String name)
      Simple check for valid XMLNames. Within ASCII range
      ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]
      are accepted, above all characters (which is not entirely correct according to the XML Spec.
      Parameters:
      name - an XML Name
      Returns:
      Return true if the name is correct.
    • isXMLNameNS

      public static boolean isXMLNameNS(String name)
      Checks if the value is a legal "unqualified" XML name, as defined in the XML Namespaces proposed recommendation. These are XML names, except that they must not contain a colon.
      Parameters:
      name - the value to check
      Returns:
      Returns true if the name is a valid "unqualified" XML name.
    • isControlChar

      static boolean isControlChar(char c)
      Parameters:
      c - a char
      Returns:
      Returns true if the char is an ASCII control char.
    • escapeXML

      public static String escapeXML(String value, boolean forAttribute, boolean escapeWhitespaces)
      Serializes the node value in XML encoding. Its used for tag bodies and attributes.
      Note: The attribute is always limited by quotes, thats why &apos; is never serialized.
      Note: Control chars are written unescaped, but if the user uses others than tab, LF and CR the resulting XML will become invalid.
      Parameters:
      value - a string
      forAttribute - flag if string is attribute value (need to additional escape quotes)
      escapeWhitespaces - Decides if LF, CR and TAB are escaped.
      Returns:
      Returns the value ready for XML output.
    • removeControlChars

      static String removeControlChars(String value)
      Replaces the ASCII control chars with a space.
      Parameters:
      value - a node value
      Returns:
      Returns the cleaned up value
    • isNameStartChar

      private static boolean isNameStartChar(char ch)
      Simple check if a character is a valid XML start name char. All characters according to the XML Spec 1.1 are accepted: http://www.w3.org/TR/xml11/#NT-NameStartChar
      Parameters:
      ch - a character
      Returns:
      Returns true if the character is a valid first char of an XML name.
    • isNameChar

      private static boolean isNameChar(char ch)
      Simple check if a character is a valid XML name char (every char except the first one), according to the XML Spec 1.1: http://www.w3.org/TR/xml11/#NT-NameChar
      Parameters:
      ch - a character
      Returns:
      Returns true if the character is a valid char of an XML name.
    • initCharTables

      private static void initCharTables()
      Initializes the char tables for the chars 0x00-0xFF for later use, according to the XML 1.1 specification http://www.w3.org/TR/xml11