<T extends ResourceInfo> void initResource( T r, Class<T> clazz, String rId, String name, StoreInfo s, NamespaceInfo ns, String srs, ProjectionPolicy projPolicy, ReferencedEnvelope envelope, ReferencedEnvelope latLonEnvelope) { expect(r.getId()).andReturn(rId).anyTimes(); expect(r.getName()).andReturn(name).anyTimes(); expect(r.getQualifiedName()).andReturn(new NameImpl(ns.getURI(), name)).anyTimes(); expect(r.getNativeName()).andReturn(name).anyTimes(); expect(r.getQualifiedNativeName()).andReturn(new NameImpl(ns.getURI(), name)).anyTimes(); expect(r.getTitle()).andReturn(name).anyTimes(); expect(r.getAbstract()).andReturn("abstract about " + name).anyTimes(); expect(r.getStore()).andReturn(s).anyTimes(); expect(r.getNamespace()).andReturn(ns).anyTimes(); srs = srs != null ? srs : "EPSG:4326"; expect(r.getSRS()).andReturn(srs).anyTimes(); try { expect(r.getNativeCRS()).andReturn(CRS.decode(srs)); } catch (Exception e) { throw new RuntimeException(e); } expect(r.getKeywords()).andReturn((List) Arrays.asList(new Keyword(name))).anyTimes(); expect(r.isEnabled()).andReturn(true).anyTimes(); expect(r.isAdvertised()).andReturn(true).anyTimes(); expect(r.getProjectionPolicy()).andReturn(projPolicy).anyTimes(); expect(r.getLatLonBoundingBox()).andReturn(latLonEnvelope).anyTimes(); ; expect(r.getNativeBoundingBox()).andReturn(envelope).anyTimes(); expect(catalog.getResource(rId, clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByName(ns.getPrefix() + ":" + name, clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByName(ns.getPrefix() + ":" + name, ResourceInfo.class)) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(name, clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByName(name, ResourceInfo.class)).andReturn(r).anyTimes(); expect(catalog.getResourceByName(new NameImpl(ns.getPrefix(), name), clazz)) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(new NameImpl(ns.getPrefix(), name), ResourceInfo.class)) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(new NameImpl(ns.getURI(), name), clazz)) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(new NameImpl(ns.getURI(), name), ResourceInfo.class)) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(ns, name, clazz)).andReturn(r).andReturn(r).anyTimes(); expect(catalog.getResourceByName(ns, name, ResourceInfo.class)) .andReturn(r) .andReturn(r) .anyTimes(); expect(catalog.getResourceByName(ns.getPrefix(), name, clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByName(ns.getPrefix(), name, ResourceInfo.class)) .andReturn(r) .anyTimes(); // expect(catalog.getResourceByName(or(eq(ns.getPrefix()), eq(ns.getURI())), name, // clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByStore(s, name, clazz)).andReturn(r).anyTimes(); expect(catalog.getResourceByStore(s, name, ResourceInfo.class)).andReturn(r).anyTimes(); }
public CoverageViewAbstractPage( String workspaceName, String storeName, String coverageName, CoverageInfo coverageInfo) throws IOException { storeId = getCatalog().getStoreByName(workspaceName, storeName, CoverageStoreInfo.class).getId(); Catalog catalog = getCatalog(); CoverageStoreInfo store = catalog.getStore(storeId, CoverageStoreInfo.class); GridCoverage2DReader reader = (GridCoverage2DReader) catalog.getResourcePool().getGridCoverageReader(store, null); String[] coverageNames = reader.getGridCoverageNames(); if (availableCoverages == null) { availableCoverages = new ArrayList<String>(); } for (String coverage : coverageNames) { ImageLayout layout = reader.getImageLayout(coverage); SampleModel sampleModel = layout.getSampleModel(null); final int numBands = sampleModel.getNumBands(); if (numBands == 1) { // simple syntax for simple case availableCoverages.add(coverage); } else { for (int i = 0; i < numBands; i++) { availableCoverages.add(coverage + CoverageView.BAND_SEPARATOR + i); } } } Collections.sort(availableCoverages); name = COVERAGE_VIEW_NAME; if (coverageName != null) { newCoverage = false; // grab the coverage view coverageViewInfo = coverageInfo != null ? coverageInfo : catalog.getResourceByStore(store, coverageName, CoverageInfo.class); CoverageView coverageView = coverageViewInfo.getMetadata().get(CoverageView.COVERAGE_VIEW, CoverageView.class); // the type can be still not saved if (coverageViewInfo != null) { coverageInfoId = coverageViewInfo.getId(); } if (coverageView == null) { throw new IllegalArgumentException( "The specified coverage does not have a coverage view attached to it"); } outputBands = new ArrayList<CoverageBand>(coverageView.getCoverageBands()); name = coverageView.getName(); } else { outputBands = new ArrayList<CoverageBand>(); newCoverage = true; coverageViewInfo = null; } selectedCoverages = new ArrayList<String>(availableCoverages); // build the form and the text area Form<CoverageViewAbstractPage> form = new Form<>("form", new CompoundPropertyModel<>(this)); add(form); final TextField<String> nameField = new TextField<>("name"); nameField.setRequired(true); nameField.add(new CoverageViewNameValidator()); form.add(nameField); coverageEditor = new CoverageViewEditor( "coverages", new PropertyModel<>(this, "selectedCoverages"), new PropertyModel<>(this, "outputBands"), availableCoverages); form.add(coverageEditor); // save and cancel at the bottom of the page form.add( new SubmitLink("save") { @Override public void onSubmit() { onSave(); } }); form.add( new Link<Void>("cancel") { @Override public void onClick() { onCancel(); } }); }