Ejemplo n.º 1
0
  private static List<DataStoreInfo> findGeoGigStores(
      Catalog catalog, org.opengis.filter.Filter filter) {
    List<DataStoreInfo> geogigStores;
    CloseableIterator<DataStoreInfo> stores = catalog.list(DataStoreInfo.class, filter);
    try {
      geogigStores = Lists.newArrayList(stores);
    } finally {
      stores.close();
    }

    return geogigStores;
  }
Ejemplo n.º 2
0
  private JSONArr layers(StoreInfo store, JSONArr list) throws IOException {
    Catalog cat = geoServer.getCatalog();
    WorkspaceInfo ws = store.getWorkspace();

    Filter filter = and(equal("store", store), equal("namespace.prefix", ws.getName()));
    try (CloseableIterator<ResourceInfo> layers = cat.list(ResourceInfo.class, filter); ) {
      while (layers.hasNext()) {
        ResourceInfo r = layers.next();
        for (LayerInfo l : cat.getLayers(r)) {
          layer(list.addObject(), l, true);
        }
      }
    }

    return list;
  }
Ejemplo n.º 3
0
  int layerCount(StoreInfo store) throws IOException {
    Catalog cat = geoServer.getCatalog();
    WorkspaceInfo ws = store.getWorkspace();

    Filter filter = and(equal("store", store), equal("namespace.prefix", ws.getName()));
    int count = 0;
    try (CloseableIterator<ResourceInfo> layers = cat.list(ResourceInfo.class, filter); ) {
      while (layers.hasNext()) {
        ResourceInfo r = layers.next();
        for (LayerInfo l : cat.getLayers(r)) {
          if (l != null) {
            count++;
          }
        }
      }
    }
    return count;
  }
Ejemplo n.º 4
0
  public static List<DataStoreInfo> findGeogitStores(Request request) {
    List<DataStoreInfo> geogitStores;

    Catalog catalog = getCatalog(request);
    org.opengis.filter.Filter filter =
        Predicates.equal("type", GeoGitDataStoreFactory.DISPLAY_NAME);
    CloseableIterator<DataStoreInfo> stores = catalog.list(DataStoreInfo.class, filter);
    try {
      Predicate<DataStoreInfo> enabled =
          new Predicate<DataStoreInfo>() {
            @Override
            public boolean apply(@Nullable DataStoreInfo input) {
              return input.isEnabled();
            }
          };
      geogitStores = ImmutableList.copyOf(Iterators.filter(stores, enabled));
    } finally {
      stores.close();
    }

    return geogitStores;
  }
Ejemplo n.º 5
0
  /**
   * Returns the requested page of layer objects after applying any keyword filtering set on the
   * page
   */
  private Iterator<LayerInfo> filteredItems(Integer first, Integer count) {
    final Catalog catalog = getCatalog();

    // global sorting
    final SortParam sort = getSort();
    final Property<LayerInfo> property = getProperty(sort);

    SortBy sortOrder = null;
    if (sort != null) {
      if (property instanceof BeanProperty) {
        final String sortProperty = ((BeanProperty<LayerInfo>) property).getPropertyPath();
        sortOrder = sortBy(sortProperty, sort.isAscending());
      } else if (property == ENABLED) {
        sortOrder = sortBy("enabled", sort.isAscending());
      }
    }

    final Filter filter = getFilter();
    // our already filtered and closeable iterator
    Iterator<LayerInfo> items = catalog.list(LayerInfo.class, filter, first, count, sortOrder);

    return items;
  }
Ejemplo n.º 6
0
 private CloseableIterator<DataStoreInfo> getDataStores() {
   Catalog catalog = getGeoServer().getCatalog();
   Filter filter = Predicates.acceptAll();
   CloseableIterator<DataStoreInfo> stores = catalog.list(DataStoreInfo.class, filter);
   return stores;
 }
Ejemplo n.º 7
0
  private JSONObj resource(JSONObj obj, StoreInfo store, String name, HttpServletRequest req)
      throws IOException {
    obj.put("name", name);
    if (store instanceof DataStoreInfo) {
      DataStoreInfo data = (DataStoreInfo) store;

      @SuppressWarnings("rawtypes")
      DataAccess dataStore = data.getDataStore(new NullProgressListener());
      FeatureType schema;
      org.geotools.data.ResourceInfo info;
      if (dataStore instanceof DataStore) {
        schema = ((DataStore) dataStore).getSchema(name);
        info = ((DataStore) dataStore).getFeatureSource(name).getInfo();
      } else {
        NameImpl qname = new NameImpl(name);
        schema = dataStore.getSchema(qname);
        info = dataStore.getFeatureSource(qname).getInfo();
      }
      String title = info.getTitle() == null ? WordUtils.capitalize(name) : info.getTitle();
      String description = info.getDescription() == null ? "" : info.getDescription();
      obj.put("title", title);
      obj.put("description", description);

      JSONArr keywords = obj.putArray("keywords");
      keywords.raw().addAll(info.getKeywords());
      IO.bounds(obj.putObject("bounds"), info.getBounds());
      IO.schema(obj.putObject("schema"), schema, false);
    }
    if (store instanceof CoverageStoreInfo) {
      CoverageStoreInfo data = (CoverageStoreInfo) store;
      GridCoverageReader r = data.getGridCoverageReader(null, null);
      obj.put("title", WordUtils.capitalize(name));
      obj.put("description", "");
      if (r instanceof GridCoverage2DReader) {
        GridCoverage2DReader reader = (GridCoverage2DReader) r;
        CoordinateReferenceSystem crs = reader.getCoordinateReferenceSystem(name);
        IO.schemaGrid(obj.putObject("schema"), crs, false);
      } else {
        IO.schemaGrid(obj.putObject("schema"), AbstractGridFormat.getDefaultCRS(), false);
      }
    }

    JSONArr layers = obj.putArray("layers");
    Catalog cat = geoServer.getCatalog();
    if (store instanceof CoverageStoreInfo) {
      // coverage store does not respect native name so we search by id
      for (CoverageInfo info : cat.getCoveragesByCoverageStore((CoverageStoreInfo) store)) {
        layers(info, layers);
      }
    } else {
      Filter filter =
          and(equal("namespace.prefix", store.getWorkspace().getName()), equal("nativeName", name));
      try (CloseableIterator<ResourceInfo> published = cat.list(ResourceInfo.class, filter); ) {
        while (published.hasNext()) {
          ResourceInfo info = published.next();
          if (!info.getStore().getId().equals(store.getId())) {
            continue; // native name is not enough, double check store id
          }
          layers(info, layers);
        }
      }
    }
    return obj;
  }