/** * {@inheritDoc} */ public String getNamespaceForPrefix( String prefix ) { CheckArg.isNotNull(prefix, "prefix"); Lock lock = this.registryLock.readLock(); try { lock.lock(); return this.delegate.getNamespaceForPrefix(prefix); } finally { lock.unlock(); } }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.NamespaceRegistry#getNamespaceForPrefix(java.lang.String) */ public String getNamespaceForPrefix( String prefix ) { String uri = delegate.getNamespaceForPrefix(prefix); if (uri == null) { // There was no URI registered with that prefix, so check the aliases ... uri = aliaseNamespaceUriByPrefix.get(prefix); if (uri != null) { // The prefix is for an aliased namespace, so use the original namespace URI instead ... String originalUri = namespaceUrisByAlias.get(uri); assert originalUri != null; uri = originalUri; } } else { // The supplied prefix matched a namespace, but we need to see if the namespace is really an alias // (this can happen if the user re-registers an aliased namespace under a different prefix) ... String originalUri = namespaceUrisByAlias.get(uri); if (originalUri != null) { // The delegate's prefix matched an aliased namespace URI, so return the original URI ... uri = originalUri; } } return uri; }
/** * {@inheritDoc} * * @see org.xml.sax.helpers.DefaultHandler#endPrefixMapping(java.lang.String) */ @Override public void endPrefixMapping( String prefix ) { assert prefix != null; // Get the current URI for this prefix ... String uri = namespaceRegistry.getNamespaceForPrefix(prefix); assert uri != null; // Get the previous prefix from the stack ... LinkedList<String> prefixStack = this.prefixStackByUri.get(uri); assert prefixStack != null; assert !prefixStack.isEmpty(); String existingPrefix = prefixStack.removeFirst(); assert prefix.equals(existingPrefix); // If there are no previous prefixes, then remove the mapping ... if (prefixStack.isEmpty()) { namespaceRegistry.unregister(uri); prefixStackByUri.remove(uri); } else { String previous = prefixStack.getFirst(); namespaceRegistry.register(previous, uri); } }
/** * {@inheritDoc} * * @see org.modeshape.graph.property.basic.SimpleNamespaceRegistry#getNamespaceForPrefix(java.lang.String) */ @Override public String getNamespaceForPrefix( String prefix ) { String result = super.getNamespaceForPrefix(prefix); if (result == null) { result = this.delegate.getNamespaceForPrefix(prefix); // Catch if this namespace was remapped if (result != null && super.getPrefixForNamespaceUri(result, false) != null) { return null; } } return result; }
@Test( expected = IllegalArgumentException.class ) public void shouldNotAllowNullPrefixParameterWhenGettingNamespaceUri() { namespaceRegistry.getNamespaceForPrefix(null); }
localName = decoder.decode(localName); String namespaceUri = this.namespaceRegistry.getNamespaceForPrefix(prefix);
@Test public void shouldReturnNamespaceUriForPrefixThatIsRegistered() { namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register(validPrefix2, validNamespaceUri2); assertThat(namespaceRegistry.getNamespaceForPrefix(validPrefix1), is(validNamespaceUri1)); assertThat(namespaceRegistry.getNamespaceForPrefix(validPrefix2), is(validNamespaceUri2)); }
if (contextRegistry.getNamespaceForPrefix(prefix) != null) {
@Test public void shouldReturnNullForNamespaceUriIfPrefixIsNotRegistered() { assertThat(namespaceRegistry.getNamespaceForPrefix("notfound"), is(nullValue())); // now register some namespaces ... namespaceRegistry.register(validPrefix1, validNamespaceUri1); namespaceRegistry.register(validPrefix2, validNamespaceUri2); assertThat(namespaceRegistry.getNamespaceForPrefix("notfound"), is(nullValue())); }
assertThat(registry.isRegisteredNamespaceUri(uri), is(true)); assertThat(registry.getPrefixForNamespaceUri(uri, false), is(prefix)); assertThat(registry.getNamespaceForPrefix(prefix), is(uri));
@Test public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormatWithoutPrefix() { name = factory.create("a"); assertThat(name.getLocalName(), is("a")); assertThat(name.getNamespaceUri(), is(this.registry.getNamespaceForPrefix(""))); }
@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)); }
@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("")); }
toRegister.remove(cache.getNamespaceForPrefix(""));