java.lang.Object
org.apache.jena.rdf.model.impl.Util

public class Util extends Object
Some utility functions.
  • Constructor Details

    • Util

      public Util()
  • Method Details

    • splitNamespaceXML

      public static int splitNamespaceXML(String uri)
      Given an absolute URI, determine the split point between the namespace part and the localname part. If there is no valid localname part then the length of the string is returned. The algorithm tries to find the longest NCName at the end of the uri, not immediately preceeded by the first colon in the string.

      This operation follows XML QName rules which are more complicated than needed for Turtle and TriG. For example, QName can't start with a digit.

      Parameters:
      uri -
      Returns:
      the index of the first character of the localname
      See Also:
    • notNameChar

      public static boolean notNameChar(char ch)
      answer true iff this is not a legal NCName character, ie, is a possible split-point start.
    • substituteStandardEntities

      public static String substituteStandardEntities(String s)
    • substituteEntitiesInEntityValue

      public static String substituteEntitiesInEntityValue(String s)
    • substituteEntitiesInElementContent

      public static String substituteEntitiesInElementContent(String s)
      Answer s modified to replace <, >, and & by their corresponding entity references.

      Implementation note: as a (possibly misguided) performance hack, the obvious cascade of replaceAll calls is replaced by an explicit loop that looks for all three special characters at once.

    • replace

      public static String replace(String s, String oldString, String newString)
    • isSimpleString

      public static boolean isSimpleString(Node n)
      A Node is a simple string if:
      • (RDF 1.0) No datatype and no language tag.
      • (RDF 1.1) xsd:string
    • isLangString

      public static boolean isLangString(Node n)
      A Node is a well-formed language string if it has a language tag and it does not have an initial text direction. This excludes "abc"^^rdf:langString which is not well-formed.
    • isDirLangString

      public static boolean isDirLangString(Node n)
      A Node is a well-formed directional language string if it has a language tag and it has an initial text direction.
    • hasLang

      public static boolean hasLang(Node n)
      Test whether this node has a language (rdf:langString or rdf:dirLangString)
    • hasDirection

      public static boolean hasDirection(Node n)
      Test whether this node has an initial text language (rdf:dirLangString)
    • isSimpleString

      public static boolean isSimpleString(Literal lit)
      Return true if the literal is a simple string.

      RDF 1.0 => it is a plain literal, with no language tag

      RDF 1.1 => it has datatype xsd:string

    • isLangString

      public static boolean isLangString(Literal lit)
      Return true if the literal has a language tag.
    • isDirLangString

      public static boolean isDirLangString(Literal lit)
      Return true if the literal is well-formed, has a language tag and a text direction.