/** * Returns the set of authority names. * * @since 2.4 */ @Override public Set<String> getAuthorityNames() { // Do not use 'authorityNames' since it may be out-of-date. return ReferencingFactoryFinder.getAuthorityNames(); }
/** * 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(); }
/** Returns all factories to try. */ private Set<AuthorityFactory> fromFactoryRegistry() { final ManyAuthoritiesFactory factory = (ManyAuthoritiesFactory) getProxy().getAuthorityFactory(); final Class<? extends AuthorityFactory> type = getProxy().getType(); final Set<AuthorityFactory> factories = new LinkedHashSet<AuthorityFactory>(); for (final String authority : ReferencingFactoryFinder.getAuthorityNames()) { factory.fromFactoryRegistry(authority, type, factories); } // Removes the factories already tried by super-class. final Collection<AuthorityFactory> done = getFactories(); if (done != null) { factories.removeAll(done); } return factories; }
/** Tests the registration in {@link ReferencingFactoryFinder}. */ @Test public void testFactoryFinder() { final Collection authorities = ReferencingFactoryFinder.getAuthorityNames(); assertTrue(authorities.contains("CRS")); CRSAuthorityFactory found = ReferencingFactoryFinder.getCRSAuthorityFactory("CRS", null); assertTrue(found instanceof WebCRSFactory); }
/** Tests the registration in {@link ReferencingFactoryFinder}. */ @Test public void testFactoryFinder() { final Collection<String> authorities = ReferencingFactoryFinder.getAuthorityNames(); assertTrue(authorities.contains("AUTO")); assertTrue(authorities.contains("AUTO2")); factory = ReferencingFactoryFinder.getCRSAuthorityFactory("AUTO", null); assertTrue(factory instanceof AutoCRSFactory); assertSame(factory, ReferencingFactoryFinder.getCRSAuthorityFactory("AUTO2", null)); }