org.modeshape.jcr.value.basic

## Class PathValueFactory

- java.lang.Object
- - org.modeshape.jcr.value.basic.AbstractValueFactory<Path>
  - - org.modeshape.jcr.value.basic.PathValueFactory

- All Implemented Interfaces:
    PathFactory, ValueFactory<Path>

      @Immutable
      public class PathValueFactory
      extends AbstractValueFactory<Path>
      implements PathFactory

  The standard `ValueFactory` for `PropertyType.NAME` values.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.modeshape.jcr.value.basic.AbstractValueFactory

      `AbstractValueFactory.ConvertingIterator<ValueType>`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static Pattern` | `DELIMITER_PATTERN` Regular expression used to identify the different segments in a path, using the standard '/' delimiter.
    `protected static Pattern` | `SEGMENT_PATTERN` Regular expression used to identify the different parts of a segment.

    - ### Fields inherited from class org.modeshape.jcr.value.basic.AbstractValueFactory

      `decoder, propertyType, valueFactories`

    - ### Fields inherited from interface org.modeshape.jcr.value.ValueFactory

      `DEFAULT_DECODER, DEFAULT_ENCODER`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PathValueFactory(TextDecoder decoder, ValueFactories factories)` Create a new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Path` | `create(BigDecimal value)` Create a value from a decimal.
    `Path` | `create(BinaryValue value)` Create a value from the binary content given by the supplied stream.
    `Path` | `create(boolean value)` Create a boolean from a string.
    `Path` | `create(byte[] value)` Create a value from the binary content given by the supplied array.
    `Path` | `create(Calendar value)` Create a value from a Calendar instance.
    `Path` | `create(Date value)` Create a value from a date.
    `Path` | `create(DateTime value)` Create a value from a date-time instant.
    `Path` | `create(double value)` Create a value from a double.
    `Path` | `create(float value)` Create a value from a float.
    `Path` | `create(InputStream stream)` Create a value from the binary content given by the supplied stream.
    `Path` | `create(int value)` Create a value from an integer.
    `Path` | `create(long value)` Create a long from a string.
    `Path` | `create(Name value)` Create a value from a name.
    `Path` | `create(NodeKey value)` Create a value from a `NodeKey`.
    `Path` | `create(Path.Segment value)` Create a value from a path segment.
    `Path` | `create(Path value)` Create a value from a path.
    `Path` | `create(Path parentPath, Iterable<Path.Segment> segments)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Path parentPath, Name... segmentNames)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Path parentPath, Name segmentName, int index)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Path parentPath, Path.Segment... segments)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Path parentPath, Path childPath)` Create a path by appending the supplied relative path to the supplied parent path.
    `Path` | `create(Path parentPath, String subpath)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Path parentPath, String segmentName, int index)` Create a path by appending the supplied names to the parent path.
    `Path` | `create(Reference value)` Create a value from a reference.
    `Path` | `create(String value)` Create a value from a string, using no decoding.
    `Path` | `create(String value, TextDecoder decoder)` Create a value from a string, using the supplied decoder.
    `Path` | `create(URI value)` Create a value from a URI.
    `Path` | `create(UUID value)` Create a value from a UUID.
    `Path` | `createAbsolutePath(Iterable<Path.Segment> segments)` Create an absolute path with the supplied segments, in order.
    `Path` | `createAbsolutePath(Name... segmentNames)` Create an absolute path with the supplied segment names, in order.
    `Path` | `createAbsolutePath(Path.Segment... segments)` Create an absolute path with the supplied segments, in order.
    `Path[]` | `createEmptyArray(int length)` Creates an empty array of the given type.
    `Path` | `createRelativePath()` Create an empty relative path (i.e., equivalent to `createRelativePath`( `Path.SELF_SEGMENT`)).
    `Path` | `createRelativePath(Iterable<Path.Segment> segments)` Create a relative path with the supplied segments, in order.
    `Path` | `createRelativePath(Name... segmentNames)` Create a relative path with the supplied segment names, in order.
    `Path` | `createRelativePath(Path.Segment... segments)` Create a relative path with the supplied segments, in order.
    `Path` | `createRootPath()` Create an absolute root path.
    `Path.Segment` | `createSegment(Name segmentName)` Create a path segment given the supplied segment name.
    `Path.Segment` | `createSegment(Name segmentName, int index)` Create a path segment given the supplied segment name and index.
    `Path.Segment` | `createSegment(String segmentName)` Create a path segment given the supplied segment name.
    `Path.Segment` | `createSegment(String segmentName, int index)` Create a path segment given the supplied segment name and index.
    `Path.Segment` | `createSegment(String segmentName, TextDecoder decoder)` Create a path segment given the supplied segment name.
    `protected ValueFactory<Name>` | `getNameValueFactory()`
    `PathFactory` | `with(ValueFactories valueFactories)` Return a potentially new copy of this factory that uses the supplied ValueFactories object.

    - ### Methods inherited from class org.modeshape.jcr.value.basic.AbstractValueFactory

      `create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, getDecoder, getDecoder, getPropertyType, getStringValueFactory`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.modeshape.jcr.value.ValueFactory

      `create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, getPropertyType`

- - ### Field Detail

    - #### DELIMITER_PATTERN

          protected static final Pattern DELIMITER_PATTERN

      Regular expression used to identify the different segments in a path, using the standard '/' delimiter. The expression is simply:

           /

    - #### SEGMENT_PATTERN

          protected static final Pattern SEGMENT_PATTERN

      Regular expression used to identify the different parts of a segment. The expression is

           ([ˆ*:/\[\]|]+)(:([ˆ*:/\[\]|]+))?(\[(\d+)])?

      where the first part is accessed with group 1, the second part is accessed with group 3, and the index is accessed with group 5.

  - ### Constructor Detail

    - #### PathValueFactory

          public PathValueFactory(TextDecoder decoder,
                          ValueFactories factories)

      Create a new instance.
      Parameters:
        `decoder` - the text decoder; may be null if the default decoder should be used
        `factories` - the set of value factories, used to obtain the `string value factory`; may not be null

  - ### Method Detail

    - #### with

          public PathFactory with(ValueFactories valueFactories)

      Description copied from interface: `ValueFactory`
      Return a potentially new copy of this factory that uses the supplied ValueFactories object.
      Specified by:
        `with` in interface `PathFactory`
      Specified by:
        `with` in interface `ValueFactory<Path>`
      Parameters:
        `valueFactories` - the value factories object; may not be null
      Returns:
        the factory, which may be a new instance or may be this object if the supplied value factories is the same as used by this factory; never null

    - #### getNameValueFactory

          protected final ValueFactory<Name> getNameValueFactory()

      Returns:
        nameValueFactory

    - #### createRootPath

          public Path createRootPath()

      Description copied from interface: `PathFactory`
      Create an absolute root path. Subsequent calls will always return the same instance.
      Specified by:
        `createRootPath` in interface `PathFactory`
      Returns:
        the new path

    - #### create

          public Path create(String value)

      Description copied from interface: `ValueFactory`
      Create a value from a string, using no decoding.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the string from which the value is to be created
      Returns:
        the value, or null if the supplied string is null
      See Also:
        `ValueFactory.create(String, TextDecoder)`

    - #### create

          public Path create(String value,
                    TextDecoder decoder)

      Description copied from interface: `ValueFactory`
      Create a value from a string, using the supplied decoder.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the string from which the value is to be created
        `decoder` - the decoder that should be used; if null, the `default decoder` is used
      Returns:
        the value, or null if the supplied string is null
      See Also:
        `ValueFactory.create(String)`

    - #### create

          public Path create(int value)

      Description copied from interface: `ValueFactory`
      Create a value from an integer.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the integer from which the value is to be created
      Returns:
        the value; never null

    - #### create

          public Path create(long value)

      Description copied from interface: `ValueFactory`
      Create a long from a string.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the string from which the long is to be created
      Returns:
        the value; never null

    - #### create

          public Path create(boolean value)

      Description copied from interface: `ValueFactory`
      Create a boolean from a string.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the boolean from which the value is to be created
      Returns:
        the value; never null

    - #### create

          public Path create(float value)

      Description copied from interface: `ValueFactory`
      Create a value from a float.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the float from which the value is to be created
      Returns:
        the value; never null

    - #### create

          public Path create(double value)

      Description copied from interface: `ValueFactory`
      Create a value from a double.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the double from which the value is to be created
      Returns:
        the value; never null

    - #### create

          public Path create(BigDecimal value)

      Description copied from interface: `ValueFactory`
      Create a value from a decimal.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the decimal from which the value is to be created
      Returns:
        the value, or null if the supplied decimal is null

    - #### create

          public Path create(Calendar value)

      Description copied from interface: `ValueFactory`
      Create a value from a Calendar instance.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the Calendar instance from which the value is to be created
      Returns:
        the value, or null if the supplied Calendar is null

    - #### create

          public Path create(Date value)

      Description copied from interface: `ValueFactory`
      Create a value from a date.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the date from which the value is to be created
      Returns:
        the value, or null if the supplied date is null

    - #### create

          public Path create(DateTime value)
                      throws ValueFormatException

      Description copied from interface: `ValueFactory`
      Create a value from a date-time instant.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the date-time instant from which the value is to be created
      Returns:
        the value, or null if the supplied date is null
      Throws:
        `ValueFormatException` - if the conversion from a Date could not be performed

    - #### create

          public Path create(Name value)

      Description copied from interface: `ValueFactory`
      Create a value from a name.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the name from which the value is to be created
      Returns:
        the value, or null if the supplied name is null

    - #### create

          public Path create(Path value)

      Description copied from interface: `ValueFactory`
      Create a value from a path.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the path from which the value is to be created
      Returns:
        the value, or null if the supplied path is null

    - #### create

          public Path create(Path.Segment value)

      Description copied from interface: `ValueFactory`
      Create a value from a path segment.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the path segment from which the value is to be created
      Returns:
        the value, or null if the supplied path segment is null

    - #### createAbsolutePath

          public Path createAbsolutePath(Name... segmentNames)

      Description copied from interface: `PathFactory`
      Create an absolute path with the supplied segment names, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createAbsolutePath` in interface `PathFactory`
      Parameters:
        `segmentNames` - the names of the segments
      Returns:
        the new path

    - #### createAbsolutePath

          public Path createAbsolutePath(Path.Segment... segments)

      Description copied from interface: `PathFactory`
      Create an absolute path with the supplied segments, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createAbsolutePath` in interface `PathFactory`
      Parameters:
        `segments` - the segments
      Returns:
        the new path

    - #### createAbsolutePath

          public Path createAbsolutePath(Iterable<Path.Segment> segments)

      Description copied from interface: `PathFactory`
      Create an absolute path with the supplied segments, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createAbsolutePath` in interface `PathFactory`
      Parameters:
        `segments` - the segments
      Returns:
        the new path

    - #### createRelativePath

          public Path createRelativePath()

      Description copied from interface: `PathFactory`
      Create an empty relative path (i.e., equivalent to `createRelativePath`( `Path.SELF_SEGMENT`)). Subsequent calls will always return the same instance.
      Specified by:
        `createRelativePath` in interface `PathFactory`
      Returns:
        the new path

    - #### createRelativePath

          public Path createRelativePath(Name... segmentNames)

      Description copied from interface: `PathFactory`
      Create a relative path with the supplied segment names, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createRelativePath` in interface `PathFactory`
      Parameters:
        `segmentNames` - the names of the segments
      Returns:
        the new path

    - #### createRelativePath

          public Path createRelativePath(Path.Segment... segments)

      Description copied from interface: `PathFactory`
      Create a relative path with the supplied segments, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createRelativePath` in interface `PathFactory`
      Parameters:
        `segments` - the segments
      Returns:
        the new path

    - #### createRelativePath

          public Path createRelativePath(Iterable<Path.Segment> segments)

      Description copied from interface: `PathFactory`
      Create a relative path with the supplied segments, in order. If no segments are provided, the result will be the root path.
      Specified by:
        `createRelativePath` in interface `PathFactory`
      Parameters:
        `segments` - the segments
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    Path childPath)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied relative path to the supplied parent path. The resulting path will be `absolute` if the supplied parent path is absolute.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `childPath` - the path that should be appended to the parent path
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    Name segmentName,
                    int index)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `segmentName` - the name of the segment to be appended to the parent path
        `index` - the index for the new segment
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    String segmentName,
                    int index)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `segmentName` - the name of the segment to be appended to the parent path
        `index` - the index for the new segment
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    Name... segmentNames)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path. If no names are appended, the parent path is returned.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `segmentNames` - the names of the segments that are to be appended, in order, to the parent path
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    Path.Segment... segments)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path. If no names are appended, the parent path is returned.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `segments` - the segments that are to be appended, in order, to the parent path
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    Iterable<Path.Segment> segments)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path. If no names are appended, the parent path is returned.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `segments` - the segments that are to be appended, in order, to the parent path
      Returns:
        the new path

    - #### create

          public Path create(Path parentPath,
                    String subpath)

      Description copied from interface: `PathFactory`
      Create a path by appending the supplied names to the parent path.
      Specified by:
        `create` in interface `PathFactory`
      Parameters:
        `parentPath` - the path that is to provide the basis for the new path
        `subpath` - the subpath to be appended to the parent path, which must be in the form of a relative path
      Returns:
        the new path

    - #### createSegment

          public Path.Segment createSegment(Name segmentName)

      Description copied from interface: `PathFactory`
      Create a path segment given the supplied segment name. The resulting segment will have no index.
      Specified by:
        `createSegment` in interface `PathFactory`
      Parameters:
        `segmentName` - the name of the segment
      Returns:
        the segment

    - #### createSegment

          public Path.Segment createSegment(Name segmentName,
                                   int index)

      Description copied from interface: `PathFactory`
      Create a path segment given the supplied segment name and index.
      Specified by:
        `createSegment` in interface `PathFactory`
      Parameters:
        `segmentName` - the name of the new segment
        `index` - the index of the new segment
      Returns:
        the segment

    - #### createSegment

          public Path.Segment createSegment(String segmentName)

      Description copied from interface: `PathFactory`
      Create a path segment given the supplied segment name. The supplied string may contain a same-name-sibling index in the form of "`[n]`" at the end of the name, where n is a positive integer. Note that the same-name-sibling index is 1-based, not zero-based.
      Specified by:
        `createSegment` in interface `PathFactory`
      Parameters:
        `segmentName` - the name of the segment
      Returns:
        the segment

    - #### createSegment

          public Path.Segment createSegment(String segmentName,
                                   TextDecoder decoder)

      Description copied from interface: `PathFactory`
      Create a path segment given the supplied segment name. The supplied string may contain a same-name-sibling index in the form of "`[n]`" at the end of the name, where n is a positive integer. Note that the same-name-sibling index is 1-based, not zero-based.
      Specified by:
        `createSegment` in interface `PathFactory`
      Parameters:
        `segmentName` - the name of the segment
        `decoder` - the decoder that should be used to decode the qualified name
      Returns:
        the segment

    - #### createSegment

          public Path.Segment createSegment(String segmentName,
                                   int index)

      Description copied from interface: `PathFactory`
      Create a path segment given the supplied segment name and index.
      Specified by:
        `createSegment` in interface `PathFactory`
      Parameters:
        `segmentName` - the name of the new segment
        `index` - the index of the new segment
      Returns:
        the segment

    - #### create

          public Path create(Reference value)

      Description copied from interface: `ValueFactory`
      Create a value from a reference.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the reference from which the value is to be created
      Returns:
        the value, or null if the supplied reference is null

    - #### create

          public Path create(URI value)

      Description copied from interface: `ValueFactory`
      Create a value from a URI.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the URI from which the value is to be created
      Returns:
        the value, or null if the supplied URI is null

    - #### create

          public Path create(UUID value)

      Description copied from interface: `ValueFactory`
      Create a value from a UUID.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the UUID from which the value is to be created
      Returns:
        the value, or null if the supplied URI is null

    - #### create

          public Path create(NodeKey value)
                      throws ValueFormatException

      Description copied from interface: `ValueFactory`
      Create a value from a `NodeKey`.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the node key from which the value is to be created
      Returns:
        the value, or null if the supplied URI is null
      Throws:
        `ValueFormatException` - if the conversion from a NodeKey could not be performed

    - #### create

          public Path create(byte[] value)

      Description copied from interface: `ValueFactory`
      Create a value from the binary content given by the supplied array.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the content to be used to create the value
      Returns:
        the value, or null if the supplied stream is null

    - #### create

          public Path create(BinaryValue value)
                      throws ValueFormatException,
                             IoException

      Description copied from interface: `ValueFactory`
      Create a value from the binary content given by the supplied stream.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `value` - the binary object to be used to create the value
      Returns:
        the value, or null if the supplied stream is null
      Throws:
        `ValueFormatException` - if the conversion from the binary object could not be performed
        `IoException` - If an unexpected problem occurs while accessing the supplied binary value (such as an `IOException`).

    - #### create

          public Path create(InputStream stream)
                      throws IoException

      Description copied from interface: `ValueFactory`
      Create a value from the binary content given by the supplied stream.
      Specified by:
        `create` in interface `ValueFactory<Path>`
      Parameters:
        `stream` - the stream containing the content to be used to create the value
      Returns:
        the value, or null if the supplied stream is null
      Throws:
        `IoException` - If an unexpected problem occurs while accessing the supplied stream (such as an `IOException`).

    - #### createEmptyArray

          public Path[] createEmptyArray(int length)

      Description copied from interface: `ValueFactory`
      Creates an empty array of the given type.
      Specified by:
        `createEmptyArray` in interface `ValueFactory<Path>`
      Parameters:
        `length` - the length of the array; must be a positive value
      Returns:
        an empty array of the given length.

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.