/** * {@inheritDoc} * * @see org.modeshape.graph.property.NamespaceRegistry#getPrefixForNamespaceUri(java.lang.String, boolean) */ public String getPrefixForNamespaceUri( String namespaceUri, boolean generateIfMissing ) { // Before we do anything, see if the supplied namespace is an aliased namespace ... String originalNamespaceUri = namespaceUrisByAlias.get(namespaceUri); if (originalNamespaceUri != null) { namespaceUri = originalNamespaceUri; } return delegate.getPrefixForNamespaceUri(namespaceUri, generateIfMissing); }
/** * {@inheritDoc} */ public String getString( NamespaceRegistry namespaceRegistry ) { CheckArg.isNotNull(namespaceRegistry, "namespaceRegistry"); String prefix = namespaceRegistry.getPrefixForNamespaceUri(this.namespaceUri, true); if (prefix != null && prefix.length() != 0) { return prefix + ":" + this.localName; } return this.localName; }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.basic.SimpleNamespaceRegistry#register(java.lang.String, java.lang.String) */ @Override public String register( String prefix, String namespaceUri ) { // Just register the namespace locally ... String previous = super.register(prefix, namespaceUri); // But check whether there is a "previous" from the delegate ... if (previous == null && delegate != null) previous = delegate.getPrefixForNamespaceUri(namespaceUri, false); return previous; }
/** * {@inheritDoc} */ public String getPrefixForNamespaceUri( String namespaceUri, boolean generateIfMissing ) { CheckArg.isNotNull(namespaceUri, "namespaceUri"); String prefix = null; Lock lock = this.registryLock.readLock(); try { lock.lock(); prefix = delegate.getPrefixForNamespaceUri(namespaceUri, false); } finally { lock.unlock(); } if (prefix == null && generateIfMissing) { // Get a write lock ... lock = this.registryLock.writeLock(); try { lock.lock(); prefix = delegate.getPrefixForNamespaceUri(namespaceUri, true); return prefix; } finally { lock.unlock(); } } return prefix; }
/** * {@inheritDoc} */ public String getString( NamespaceRegistry namespaceRegistry, TextEncoder encoder ) { // This is the most-often used method, so implement it directly CheckArg.isNotNull(namespaceRegistry, "namespaceRegistry"); String prefix = namespaceRegistry.getPrefixForNamespaceUri(this.namespaceUri, true); if (prefix != null && prefix.length() != 0) { return encoder.encode(prefix) + ":" + encoder.encode(this.localName); } return encoder.encode(this.localName); }
@Test( expected = IllegalArgumentException.class ) public void shouldNotAllowNullNamespaceUriParameterWhenGettingPrefix() { namespaceRegistry.getPrefixForNamespaceUri(null, false); }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.basic.SimpleNamespaceRegistry#getPrefixForNamespaceUri(java.lang.String, boolean) */ @Override public String getPrefixForNamespaceUri( String namespaceUri, boolean generateIfMissing ) { String result = super.getPrefixForNamespaceUri(namespaceUri, false); if (result == null) { result = this.delegate.getPrefixForNamespaceUri(namespaceUri, false); if (result != null) { // This was remapped at the session layer if (!this.getNamespaceForPrefix(result).equals(namespaceUri)) { result = null; } } } if (result == null && generateIfMissing) result = super.getPrefixForNamespaceUri(namespaceUri, true); return result; }
@Test public void shouldReturnPrefixForNamespaceUriThatIsRegistered() { namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register(validPrefix2, validNamespaceUri2); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri1, false), is(validPrefix1)); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri2, false), is(validPrefix2)); }
if (contextRegistry.getNamespaceForPrefix(prefix) != null) { context.getNamespaceRegistry().getPrefixForNamespaceUri(uri, true);
@Test public void shouldReturnNullForPrefixIfNamespaceUriIsNotRegistered() { assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri3, false), is(nullValue())); // now register some namespaces ... namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register(validPrefix2, validNamespaceUri2); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri3, false), is(nullValue())); }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.Name#getString(org.modeshape.graph.property.NamespaceRegistry, * org.modeshape.common.text.TextEncoder, org.modeshape.common.text.TextEncoder) */ public String getString( NamespaceRegistry namespaceRegistry, TextEncoder encoder, TextEncoder delimiterEncoder ) { if (namespaceRegistry == null) { if (this.getNamespaceUri().length() == 0) { if (this.getLocalName().equals(Path.SELF)) return Path.SELF; if (this.getLocalName().equals(Path.PARENT)) return Path.PARENT; } if (encoder == null) encoder = Path.DEFAULT_ENCODER; if (delimiterEncoder != null) { return delimiterEncoder.encode("{") + encoder.encode(this.namespaceUri) + delimiterEncoder.encode("}") + encoder.encode(this.localName); } return "{" + encoder.encode(this.namespaceUri) + "}" + encoder.encode(this.localName); } if (encoder == null) encoder = Path.DEFAULT_ENCODER; String prefix = namespaceRegistry.getPrefixForNamespaceUri(this.namespaceUri, true); if (prefix != null && prefix.length() != 0) { String delim = delimiterEncoder != null ? delimiterEncoder.encode(":") : ":"; return encoder.encode(prefix) + delim + encoder.encode(this.localName); } return encoder.encode(this.localName); }
String uri = actual.getNamespaceUri(); assertThat(registry.isRegisteredNamespaceUri(uri), is(true)); assertThat(registry.getPrefixForNamespaceUri(uri, false), is(prefix)); assertThat(registry.getNamespaceForPrefix(prefix), is(uri));
@Test public void shouldBeAbleToCopyNamespacesToAnotherRegistry() { namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register(validPrefix2, validNamespaceUri2); namespaceRegistry.register("", validNamespaceUri3); assertThat(namespaceRegistry.isRegisteredNamespaceUri(validNamespaceUri1), is(true)); assertThat(namespaceRegistry.isRegisteredNamespaceUri(validNamespaceUri2), is(true)); assertThat(namespaceRegistry.isRegisteredNamespaceUri(validNamespaceUri3), is(true)); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri1, false), is(validPrefix1)); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri2, false), is(validPrefix2)); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri3, false), is("")); assertThat(namespaceRegistry.getNamespaceForPrefix(validPrefix1), is(validNamespaceUri1)); assertThat(namespaceRegistry.getNamespaceForPrefix(validPrefix2), is(validNamespaceUri2)); assertThat(namespaceRegistry.getNamespaceForPrefix(""), is(validNamespaceUri3)); NamespaceRegistry newRegistry = new SimpleNamespaceRegistry(); for (String uri : this.namespaceRegistry.getRegisteredNamespaceUris()) { String prefix = this.namespaceRegistry.getPrefixForNamespaceUri(uri, false); newRegistry.register(prefix, uri); } assertThat(newRegistry.isRegisteredNamespaceUri(validNamespaceUri1), is(true)); assertThat(newRegistry.isRegisteredNamespaceUri(validNamespaceUri2), is(true)); assertThat(newRegistry.isRegisteredNamespaceUri(validNamespaceUri3), is(true)); assertThat(newRegistry.getPrefixForNamespaceUri(validNamespaceUri1, false), is(validPrefix1)); assertThat(newRegistry.getPrefixForNamespaceUri(validNamespaceUri2, false), is(validPrefix2)); assertThat(newRegistry.getPrefixForNamespaceUri(validNamespaceUri3, false), is("")); assertThat(newRegistry.getNamespaceForPrefix(validPrefix1), is(validNamespaceUri1)); assertThat(newRegistry.getNamespaceForPrefix(validPrefix2), is(validNamespaceUri2)); assertThat(newRegistry.getNamespaceForPrefix(""), is(validNamespaceUri3)); }
reg.unregister(NT_NAMESPACE_URI); assertThat(reg.getPrefixForNamespaceUri(JcrLexicon.Namespace.URI, false), is(nullValue())); assertThat(reg.getPrefixForNamespaceUri(NT_NAMESPACE_URI, false), is(nullValue())); assertThat(reg.getPrefixForNamespaceUri("http://default.namespace.com", false), is(nullValue())); String c = reg.getPrefixForNamespaceUri("http://default.namespace.com", false); String i = reg.getPrefixForNamespaceUri("http://attributes.com", false); String d = reg.getPrefixForNamespaceUri(reg.getDefaultNamespaceUri(), false); assertThat("Namespace not properly registered in primary registry", c, is(notNullValue())); assertThat("Namespace not properly registered in primary registry", d, is(notNullValue()));
@Test public void shouldReturnNonNullDefaultNamespaceUriWhenThereAreNamespacesRegisteredIncludineOneWithZeroLengthPrefix() { namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register("", validNamespaceUri2); assertThat(namespaceRegistry.getDefaultNamespaceUri(), is(validNamespaceUri2)); assertThat(namespaceRegistry.getNamespaceForPrefix(""), is(validNamespaceUri2)); assertThat(namespaceRegistry.getRegisteredNamespaceUris(), hasItem(validNamespaceUri2)); assertThat(namespaceRegistry.getPrefixForNamespaceUri(validNamespaceUri2, false), is("")); }