/** * {@inheritDoc} */ public URI create( Name value ) { if (value == null) return null; return create("./" + value.getString(this.namespaceRegistry)); }
/** * {@inheritDoc} */ @Override public String getString( TextEncoder encoder ) { if (encoder == null) encoder = Path.DEFAULT_ENCODER; StringBuilder sb = new StringBuilder(); sb.append('[').append(this.getName().getString(encoder)).append(']'); return sb.toString(); }
final String readable( Name name ) { return name.getString(context.getNamespaceRegistry()); }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.Path.Segment#getString(org.modeshape.graph.property.NamespaceRegistry, * org.modeshape.common.text.TextEncoder, org.modeshape.common.text.TextEncoder) */ @Override public String getString( NamespaceRegistry namespaceRegistry, TextEncoder encoder, TextEncoder delimiterEncoder ) { if (encoder == null) encoder = Path.DEFAULT_ENCODER; StringBuilder sb = new StringBuilder(); sb.append('[').append(this.getName().getString(namespaceRegistry, encoder, delimiterEncoder)).append(']'); return sb.toString(); } }
protected final String readable( Name name ) { return name.getString(getExecutionContext().getNamespaceRegistry()); }
/** * {@inheritDoc} */ public String getString( TextEncoder encoder ) { if (encoder == null) encoder = Path.DEFAULT_ENCODER; String encodedName = this.getName().getString(encoder); if (this.hasIndex()) { return encodedName + "[" + this.getIndex() + "]"; } return encodedName; }
protected ReadableVisitor append( Name name ) { append(SINGLE_QUOTE); append(name.getString(registry, null, null)); append(SINGLE_QUOTE); return this; }
public String getName() { return path.getLastSegment().getName().getString(context.getNamespaceRegistry()); }
@Test public void shouldUseNamespacePrefixInResultFromGetStringWithNamespaceRegistry() { String result = name.getString(namespaceRegistry, encoder); assertThat(result, is("mode:" + validLocalName)); validLocalName = "some:name:with:colons"; name = new BasicName(validNamespaceUri, validLocalName); result = name.getString(namespaceRegistry, encoder); assertThat(result, is("mode:some%3aname%3awith%3acolons")); }
@Test public void shouldNotIncludeNamespacePrefixOrColonInResultFromGetStringWithNamespaceRegistry() { validNamespaceUri = namespaceRegistry.getDefaultNamespaceUri(); name = new BasicName(validNamespaceUri, validLocalName); String result = name.getString(namespaceRegistry, encoder); assertThat(result, is(validLocalName)); result = name.getString(namespaceRegistry); // default encoder assertThat(result, is(validLocalName)); validLocalName = "some:name:with:colons"; name = new BasicName(validNamespaceUri, validLocalName); result = name.getString(namespaceRegistry, encoder); assertThat(result, is(encoder.encode(validLocalName))); }
@Test public void shouldUseDelimiterEncoderToEncodeDelimiterBetweenPrefixAndLocalPart() { encoder = new Jsr283Encoder(); name = new BasicName(ModeShapeLexicon.Namespace.URI, "some:name:with:colons"); assertThat(name.getString(namespaceRegistry, encoder, delimiterEncoder), is("mode\\:some\uf03aname\uf03awith\uf03acolons")); assertThat(name.getString(null, encoder, delimiterEncoder), is("\\{" + encoder.encode(ModeShapeLexicon.Namespace.URI) + "\\}some\uf03aname\uf03awith\uf03acolons")); }
@Test public void shouldEncodeWhenNoNamespace() { String nameForEncoding = "test name"; String encodedNameForEncoding = encoder.encode(nameForEncoding); // Make sure that we're not testing a trivial encoding assertThat(encodedNameForEncoding, not(nameForEncoding)); name = new BasicName(null, nameForEncoding); String result = name.getString(namespaceRegistry, encoder); assertThat(result, is(encodedNameForEncoding)); result = name.getString(encoder); assertThat(result, is(encodedNameForEncoding)); }
@Test public void shouldEncodeColonInLocalNameAndNamespaceUriInResultFromGetStringWithoutNamespaceRegistry() { validLocalName = "some:name:with:colons"; name = new BasicName(validNamespaceUri, validLocalName); String encodedNamespaceUri = encoder.encode(validNamespaceUri); String encodedLocalName = encoder.encode(validLocalName); String result = name.getString(encoder); assertThat(result, is("{" + encodedNamespaceUri + "}" + encodedLocalName)); assertThat(encodedNamespaceUri, is("http%3a%2f%2fwww.modeshape.org%2f1.0")); assertThat(encodedLocalName, is("some%3aname%3awith%3acolons")); }
@Test public void shouldCreateNameFromSingleStringInStandardFullNamespaceFormat() { name = factory.create("{http://www.modeshape.org/namespace}something"); assertThat(name.getLocalName(), is("something")); assertThat(name.getNamespaceUri(), is("http://www.modeshape.org/namespace")); assertThat(name.getString(NO_OP_ENCODER), is("{http://www.modeshape.org/namespace}something")); }
@Test public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormat() { name = factory.create("dna:something"); assertThat(name.getLocalName(), is("something")); assertThat(name.getNamespaceUri(), is("http://www.modeshape.org/namespace")); assertThat(name.getString(NO_OP_ENCODER), is("{http://www.modeshape.org/namespace}something")); }
@Test public void shouldCreateNameFromSingleEncodedStringInPrefixedNamespaceFormat() { name = factory.create(encoder.encode("dna") + ":" + encoder.encode("some/thing")); assertThat(name.getLocalName(), is("some/thing")); assertThat(name.getNamespaceUri(), is("http://www.modeshape.org/namespace")); assertThat(name.getString(NO_OP_ENCODER), is("{http://www.modeshape.org/namespace}some/thing")); }
@Test public void shouldCreateNameFromSingleEncodedStringInStandardFullNamespaceFormat() { name = factory.create("{" + encoder.encode("http://www.modeshape.org/namespace") + "}" + encoder.encode("some/thing")); assertThat(name.getLocalName(), is("some/thing")); assertThat(name.getNamespaceUri(), is("http://www.modeshape.org/namespace")); assertThat(name.getString(NO_OP_ENCODER), is("{http://www.modeshape.org/namespace}some/thing")); }
@Test public void shouldUseFullNamespaceUriInResultFromGetStringWithoutNamespaceRegistry() { String encodedNamespaceUri = Path.DEFAULT_ENCODER.encode(validNamespaceUri); String encodedLocalName = Path.DEFAULT_ENCODER.encode(validLocalName); String result = name.getString(); assertThat(result, containsString(encodedNamespaceUri)); assertThat(result, containsString(encodedLocalName)); assertThat(result, is("{" + encodedNamespaceUri + "}" + encodedLocalName)); }
@Test public void shouldGetPropertyOnNode() { setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); graph.getProperty(validIdProperty2.getName()).on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperty(Location.create(validPath), validIdProperty2); assertNoMoreRequests(); setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); graph.getProperty(validIdProperty2.getName().getString(context.getNamespaceRegistry())).on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperty(Location.create(validPath), validIdProperty2); assertNoMoreRequests(); }