org.modeshape.graph.property.basic
Class PathValueFactory

java.lang.Object
  extended by org.modeshape.graph.property.basic.AbstractValueFactory<Path>
      extended by org.modeshape.graph.property.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.graph.property.basic.AbstractValueFactory
AbstractValueFactory.ConvertingIterator<ValueType>
 
Field Summary
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 interface org.modeshape.graph.property.ValueFactory
DEFAULT_DECODER, DEFAULT_ENCODER
 
Constructor Summary
PathValueFactory(TextDecoder decoder, ValueFactory<String> stringValueFactory, ValueFactory<Name> nameValueFactory)
           
 
Method Summary
 Path create(BigDecimal value)
          Create a value from a decimal.
 Path create(Binary 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, long approximateLength)
          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(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(Reader reader, long approximateLength)
          Create a value from a the binary content given by the supplied reader.
 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.
protected  Path[] createEmptyArray(int length)
          
 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()
           
 
Methods inherited from class org.modeshape.graph.property.basic.AbstractValueFactory
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.graph.property.ValueFactory
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,
                        ValueFactory<String> stringValueFactory,
                        ValueFactory<Name> nameValueFactory)
Method Detail

getNameValueFactory

protected ValueFactory<Name> getNameValueFactory()
Returns:
nameValueFactory

createRootPath

public Path createRootPath()

Create an absolute root path. Subsequent calls will always return the same instance.

Specified by:
createRootPath in interface PathFactory
Returns:
the new path
See Also:
PathFactory.createRootPath()

create

public Path create(String value)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
See Also:
ValueFactory.create(org.modeshape.graph.property.DateTime)

create

public Path create(Name value)
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)
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

createAbsolutePath

public Path createAbsolutePath(Name... segmentNames)
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)
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)
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
See Also:
PathFactory.createAbsolutePath(java.lang.Iterable)

createRelativePath

public Path createRelativePath()

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
See Also:
PathFactory.createRelativePath()

createRelativePath

public Path createRelativePath(Name... segmentNames)
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)
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)
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
See Also:
PathFactory.createRelativePath(java.lang.Iterable)

create

public Path create(Path parentPath,
                   Path childPath)
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
See Also:
PathFactory.create(org.modeshape.graph.property.Path, org.modeshape.graph.property.Path)

create

public Path create(Path parentPath,
                   Name segmentName,
                   int index)
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)
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
See Also:
PathFactory.create(org.modeshape.graph.property.Path, java.lang.String, int)

create

public Path create(Path parentPath,
                   Name... segmentNames)
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)
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)
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
See Also:
PathFactory.create(org.modeshape.graph.property.Path, java.lang.Iterable)

create

public Path create(Path parentPath,
                   String subpath)
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
See Also:
PathFactory.create(org.modeshape.graph.property.Path, java.lang.String)

createSegment

public Path.Segment createSegment(Name segmentName)
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)
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)
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
See Also:
PathFactory.createSegment(java.lang.String)

createSegment

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

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
See Also:
PathFactory.createSegment(java.lang.String, org.modeshape.common.text.TextDecoder)

createSegment

public Path.Segment createSegment(String segmentName,
                                  int index)
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)
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)
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)
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
See Also:
ValueFactory.create(java.util.UUID)

create

public Path create(byte[] value)
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(Binary value)
            throws ValueFormatException,
                   IoException
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).
See Also:
ValueFactory.create(org.modeshape.graph.property.Binary)

create

public Path create(InputStream stream,
                   long approximateLength)
            throws IoException
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
approximateLength - the approximate length of the content (in bytes)
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).

create

public Path create(Reader reader,
                   long approximateLength)
            throws IoException
Create a value from a the binary content given by the supplied reader.

Specified by:
create in interface ValueFactory<Path>
Parameters:
reader - the reader containing the content to be used to create the value
approximateLength - the approximate length of the content (in bytes)
Returns:
the value, or null if the supplied string is null
Throws:
IoException - If an unexpected problem occurs while accessing the supplied reader (such as an IOException).

createEmptyArray

protected Path[] createEmptyArray(int length)

Specified by:
createEmptyArray in class AbstractValueFactory<Path>


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