/** * Returns the direct dependencies. Current implementation returns the internal structure * because we know that this package will not modifies it. But if the method become public, we * will need to returns a unmodifiable view. */ @Override Collection<? super AuthorityFactory> dependencies() { return getFactories(); }
/** Returns the authority names of every factories given at construction time. */ public Set<String> getAuthorityNames() { final Set<String> names = new HashSet<String>(); final Collection<AuthorityFactory> factories = getFactories(); if (factories != null) { for (final AuthorityFactory factory : factories) { names.add(Citations.getIdentifier(factory.getAuthority())); } } return names; }
/** Returns the user-supplied factories. */ final Collection<AuthorityFactory> getFactories() { return ((ManyAuthoritiesFactory) getProxy().getAuthorityFactory()).getFactories(); }
/** * Returns the factories to be used by {@link ManyAuthoritiesFactory}. If the registered * factories changed since the last time this method has been invoked, then this method recreate * the set. */ @Override Collection<AuthorityFactory> getFactories() { final Collection<String> authorities = ReferencingFactoryFinder.getAuthorityNames(); if (authorities != authorityNames) { authorityNames = authorities; final Hints hints = getHints(); final Set<AuthorityFactory> factories = new LinkedHashSet<AuthorityFactory>(); factories.addAll(ReferencingFactoryFinder.getCRSAuthorityFactories(hints)); factories.addAll(ReferencingFactoryFinder.getCSAuthorityFactories(hints)); factories.addAll(ReferencingFactoryFinder.getDatumAuthorityFactories(hints)); factories.addAll( ReferencingFactoryFinder.getCoordinateOperationAuthorityFactories(hints)); setFactories(factories); } return super.getFactories(); }
String authority = null; FactoryRegistryException cause = null; final Collection<AuthorityFactory> factories = getFactories(); final char separator = getSeparator(code); for (int split = code.lastIndexOf(separator);