/** * Invoked when the {@link #hints} map should be initialized. This method may be overridden by * subclasses like {@link BufferedCoordinateOperationFactory}. */ void initializeHints() { assert Thread.holdsLock(hints); final ReferencingFactoryContainer factories = getFactoryContainer(); hints.putAll(factories.getImplementationHints()); }
/** * Returns the implementation hints for this factory. The returned map contains values for * {@link Hints#CRS_FACTORY CRS}, {@link Hints#CS_FACTORY CS}, {@link Hints#DATUM_FACTORY DATUM} * and {@link Hints#MATH_TRANSFORM_FACTORY MATH_TRANSFORM} {@code FACTORY} hints. Other values * may be provided as well, at implementation choice. */ @Override public Map<RenderingHints.Key, ?> getImplementationHints() { synchronized (hints) { // Note: avoid lock on public object. if (!hintsInitialized) { hintsInitialized = true; hints.putAll(factories.getImplementationHints()); } } return super.getImplementationHints(); }
assert Thread.holdsLock(this); final Hints sourceHints = new Hints(hints); sourceHints.putAll(factories.getImplementationHints()); if (datasource != null) { return createBackingStore(sourceHints);