125 |
125 |
|
126 |
126 |
private final Map<String, Map<Class<ILegend>,Class<ILegendWriter>>> legendWriters = new LinkedHashMap<>();
|
127 |
127 |
|
128 |
|
private final Map<Class<? extends DataStore>,Class<? extends FLayer>> layerClassFromStoreClass = new HashMap<>();
|
|
128 |
private final Map<Class,Class<? extends FLayer>> layerClassFromStoreClass = new HashMap<>();
|
129 |
129 |
|
130 |
130 |
private final Map<String,String> iconLayers = new HashMap(); // (Map<String storeProviderName, String iconName>)
|
131 |
131 |
|
... | ... | |
685 |
685 |
|
686 |
686 |
@Override
|
687 |
687 |
public boolean registerLayer(
|
688 |
|
Class<? extends DataStore> dataStoreClass,
|
|
688 |
Class theClass,
|
689 |
689 |
Class<? extends FLayer> layerClass)
|
690 |
690 |
{
|
691 |
|
this.layerClassFromStoreClass.put(dataStoreClass, layerClass);
|
|
691 |
this.layerClassFromStoreClass.put(theClass, layerClass);
|
692 |
692 |
return true;
|
693 |
693 |
}
|
694 |
694 |
|
695 |
|
private Class<? extends FLayer> getLayerClassFromDataStoreClass(
|
696 |
|
Class<? extends DataStore> dataStoreClass) {
|
697 |
|
Class<? extends FLayer> layerClass = this.layerClassFromStoreClass.get(dataStoreClass);
|
|
695 |
private Class<? extends FLayer> getLayerClass(
|
|
696 |
Class keyClass) {
|
|
697 |
Class<? extends FLayer> layerClass = this.layerClassFromStoreClass.get(keyClass);
|
698 |
698 |
if( layerClass!=null ) {
|
699 |
699 |
return layerClass;
|
700 |
700 |
}
|
701 |
|
for (Map.Entry<Class<? extends DataStore>, Class<? extends FLayer>> entry : layerClassFromStoreClass.entrySet()) {
|
702 |
|
Class<? extends DataStore> currentDataStoreClass = entry.getKey();
|
|
701 |
for (Map.Entry<Class, Class<? extends FLayer>> entry : layerClassFromStoreClass.entrySet()) {
|
|
702 |
Class currentKeyClass = entry.getKey();
|
703 |
703 |
layerClass = entry.getValue();
|
704 |
|
if( currentDataStoreClass.isAssignableFrom(dataStoreClass) ) {
|
|
704 |
if( currentKeyClass.isAssignableFrom(keyClass) ) {
|
705 |
705 |
return layerClass;
|
706 |
706 |
}
|
707 |
707 |
}
|
... | ... | |
749 |
749 |
);
|
750 |
750 |
return this.createLayer(layerName, dataStore, parameters);
|
751 |
751 |
}
|
752 |
|
Class<? extends FLayer> layerClass = this.getLayerClassFromDataStoreClass(FeatureStore.class);
|
|
752 |
Class<? extends FLayer> layerClass = this.getLayerClass(FeatureStore.class);
|
753 |
753 |
if (layerClass == null) {
|
754 |
754 |
throw new CantRetrieveLayerByStoreException(layerName, FeatureStore.class.getName());
|
755 |
755 |
}
|
... | ... | |
815 |
815 |
}
|
816 |
816 |
}
|
817 |
817 |
|
818 |
|
Class<? extends FLayer> layerClass = this.getLayerClassFromDataStoreClass(dataStore.getClass());
|
|
818 |
Class<? extends FLayer> layerClass = this.getLayerClass(dataStore.getParameters().getClass());
|
819 |
819 |
if (layerClass == null) {
|
820 |
|
throw new CantRetrieveLayerByStoreException(layerName, dataStore.getName());
|
|
820 |
layerClass = this.getLayerClass(dataStore.getProviderFactory().getClass());
|
|
821 |
if (layerClass == null) {
|
|
822 |
layerClass = this.getLayerClass(dataStore.getClass());
|
|
823 |
}
|
|
824 |
if (layerClass == null) {
|
|
825 |
throw new CantRetrieveLayerByStoreException(layerName, dataStore.getName());
|
|
826 |
}
|
821 |
827 |
}
|
822 |
828 |
FLayer layer;
|
823 |
829 |
try {
|