示例#1
0
 /*
  * Required adaptions:
  * <ul>
  * <li>IGeoResourceInfo.class
  * <li>IService.class
  * </ul>
  * @see net.refractions.udig.catalog.IResolve#resolve(java.lang.Class, org.eclipse.core.runtime.IProgressMonitor)
  */
 public <T> T resolve(Class<T> adaptee, IProgressMonitor monitor) throws IOException {
   if (adaptee == null) {
     return null;
   }
   if (adaptee.isAssignableFrom(IGeoResource.class)) {
     return adaptee.cast(this);
   }
   if (adaptee.isAssignableFrom(IGeoResourceInfo.class)) {
     return adaptee.cast(createInfo(monitor));
   }
   if (adaptee.isAssignableFrom(FeatureStore.class)) {
     FeatureSource<SimpleFeatureType, SimpleFeature> fs = featureSource(monitor);
     if (fs instanceof FeatureStore) {
       return adaptee.cast(fs);
     }
   }
   if (adaptee.isAssignableFrom(FeatureSource.class)) {
     return adaptee.cast(featureSource(monitor));
   }
   if (adaptee.isAssignableFrom(IndexedShapefileDataStore.class)) {
     return adaptee.cast(parent.getDS(monitor));
   }
   if (adaptee.isAssignableFrom(Style.class)) {
     Style style = style(monitor);
     if (style != null) {
       return adaptee.cast(style(monitor));
     }
     // proceed to ask the super class, someone may
     // of written an IResolveAdapaterFactory providing us
     // with a style ...
   }
   return super.resolve(adaptee, monitor);
 }
示例#2
0
 private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource(IProgressMonitor monitor)
     throws IOException {
   return parent.getDS(monitor).getFeatureSource();
 }