/** * {@inheritDoc} */ public Name create( Path.Segment segment ) { if (segment == null) return null; // Can only convert if the path has no SNS index ... if (!segment.hasIndex()) return segment.getName(); throw new ValueFormatException(segment, getPropertyType(), GraphI18n.errorConvertingType.text(Path.Segment.class.getSimpleName(), Name.class.getSimpleName(), segment)); }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.Path#endsWith(org.modeshape.graph.property.Name) */ public boolean endsWith( Name nameOfLastSegment ) { Segment segment = getLastSegment(); return segment != null && segment.getName().equals(nameOfLastSegment) && !segment.hasIndex(); }
/** * {@inheritDoc} */ public Name create( Path value ) { if (value == null) return null; if (!value.isAbsolute() && value.size() == 1) { // A relative name of length 1 is converted to a name Path.Segment segment = value.getLastSegment(); // Can only convert if the path has no SNS index ... if (!segment.hasIndex()) return segment.getName(); } throw new ValueFormatException(value, getPropertyType(), GraphI18n.errorConvertingType.text(Path.class.getSimpleName(), Name.class.getSimpleName(), value)); }
if (childPath.getLastSegment().hasIndex()) {
@Test public void shouldCreateParentReferenceSegmentIfPassedParentReferenceStringRegardlessOfIndex() { segment = factory.createSegment(Path.PARENT); assertThat(segment.getIndex(), is(Path.DEFAULT_INDEX)); assertThat(segment.hasIndex(), is(false)); assertThat(segment.isSelfReference(), is(false)); assertThat(segment.isParentReference(), is(true)); assertThat(segment.getName().getLocalName(), is(Path.PARENT)); assertThat(segment.getName().getNamespaceUri().length(), is(0)); segment = factory.createSegment(Path.PARENT, 1); assertThat(segment.getIndex(), is(Path.DEFAULT_INDEX)); assertThat(segment.hasIndex(), is(false)); assertThat(segment.isSelfReference(), is(false)); assertThat(segment.isParentReference(), is(true)); assertThat(segment.getName().getLocalName(), is(Path.PARENT)); assertThat(segment.getName().getNamespaceUri().length(), is(0)); }
@Test public void shouldCreateSelfReferenceSegmentIfPassedSelfReferenceStringRegardlessOfIndex() { segment = factory.createSegment(Path.SELF); assertThat(segment.getIndex(), is(Path.DEFAULT_INDEX)); assertThat(segment.hasIndex(), is(false)); assertThat(segment.isSelfReference(), is(true)); assertThat(segment.isParentReference(), is(false)); assertThat(segment.getName().getLocalName(), is(Path.SELF)); assertThat(segment.getName().getNamespaceUri().length(), is(0)); segment = factory.createSegment(Path.SELF, 1); assertThat(segment.getIndex(), is(Path.DEFAULT_INDEX)); assertThat(segment.hasIndex(), is(false)); assertThat(segment.isSelfReference(), is(true)); assertThat(segment.isParentReference(), is(false)); assertThat(segment.getName().getLocalName(), is(Path.SELF)); assertThat(segment.getName().getNamespaceUri().length(), is(0)); }
@Test public void shouldHaveIndexSpecifiedInConstructor() { segment = new BasicPathSegment(validName, 3); assertThat(segment.getIndex(), is(3)); assertThat(segment.hasIndex(), is(true)); assertThat(segment.isSelfReference(), is(false)); assertThat(segment.isParentReference(), is(false)); assertThat(segment.getName(), is(validName)); }
@Test public void shouldNotHaveIndexByDefault() { segment = new BasicPathSegment(validName); assertThat(segment.getIndex(), is(Path.DEFAULT_INDEX)); assertThat(segment.hasIndex(), is(false)); assertThat(segment.isSelfReference(), is(false)); assertThat(segment.isParentReference(), is(false)); assertThat(segment.getName(), is(validName)); }