@Override
public List<MultiDimensionalNumericData> getIndexConstraints(final Index index) {
final String indexCrsStr = getCrs(index.getIndexModel());
CrsCache cache = crsCodeCache.get(indexCrsStr);
if (cache != null) {
List<MultiDimensionalNumericData> indexConstraints =
cache.constraintsPerIndexId.get(index.getName());
if (indexConstraints == null) {
if (crsMatches(crsCode, indexCrsStr) || (queryGeometry == null)) {
indexConstraints = super.getIndexConstraints(index);
} else {
indexConstraints = indexConstraintsFromGeometry(cache.geometry, index);
}
cache.constraintsPerIndexId.put(index.getName(), indexConstraints);
}
return indexConstraints;
}
cache = transformToIndex(indexCrsStr, index);
crsCodeCache.put(indexCrsStr, cache);
return cache.constraintsPerIndexId.get(index.getName());
}