/** Replace or add the provided parameter in the read parameters */ public static <T> GeneralParameterValue[] replaceParameter( GeneralParameterValue[] readParameters, Object value, ParameterDescriptor<T> pd) { // scan all the params looking for the one we want to add for (GeneralParameterValue gpv : readParameters) { // in case of match of any alias add a param value to the lot if (gpv.getDescriptor().getName().equals(pd.getName())) { ((ParameterValue) gpv).setValue(value); // leave return readParameters; } } // add it to the array // add to the list GeneralParameterValue[] readParametersClone = new GeneralParameterValue[readParameters.length + 1]; System.arraycopy(readParameters, 0, readParametersClone, 0, readParameters.length); final ParameterValue<T> pv = pd.createValue(); pv.setValue(value); readParametersClone[readParameters.length] = pv; return readParametersClone; } }
@Test public void testMaxTiles() { ParameterDescriptor<Integer> pdescriptor = ImageMosaicFormat.MAX_ALLOWED_TILES; ParameterValue<Integer> pvalue = pdescriptor.createValue(); String key = pdescriptor.getName().getCode(); Map values = Collections.singletonMap(key, "1"); Object value = CoverageUtils.getCvParamValue(key, pvalue, values); assertTrue(value instanceof Integer); assertEquals(Integer.valueOf(1), value); } }
@Test public void testGetOutputTransparentColor() { ParameterDescriptor<Color> pdescriptor = ImageMosaicFormat.OUTPUT_TRANSPARENT_COLOR; ParameterValue<Color> pvalue = pdescriptor.createValue(); String key = pdescriptor.getName().getCode(); Map values = Collections.singletonMap(key, "0xFFFFFF"); Object value = CoverageUtils.getCvParamValue(key, pvalue, values); assertTrue(value instanceof Color); assertEquals(Color.WHITE, value); }
System.arraycopy(params, 0, temp, 0, params.length); ParameterValue<Integer> tempVal = ImageMosaicFormat.MAX_ALLOWED_TILES.createValue(); tempVal.setValue(this.maxAllowedTiles); temp[params.length] = tempVal; ParameterValue<Integer> tempVal = ImageMosaicFormat.MAX_ALLOWED_TILES.createValue(); tempVal.setValue(this.maxAllowedTiles); params = new GeneralParameterValue[] {tempVal};
if (descriptor instanceof ParameterDescriptor) { if (AbstractIdentifiedObject.nameMatches(descriptor, name)) { final ParameterValue value = ((ParameterDescriptor) descriptor).createValue(); values.add(value); return value;
private GridCoverage2D readCoverage( File mosaicDirectory, FootprintBehavior fp, Color transparentColor) throws NoSuchAuthorityCodeException, FactoryException, IOException { ImageMosaicReader reader = (ImageMosaicReader) new ImageMosaicFormatFactory().createFormat().getReader(mosaicDirectory); ParameterValue<String> footprintBehaviorParam = AbstractGridFormat.FOOTPRINT_BEHAVIOR.createValue(); footprintBehaviorParam.setValue(fp.name()); ParameterValue<Color> inputTransparentColor = AbstractGridFormat.INPUT_TRANSPARENT_COLOR.createValue(); inputTransparentColor.setValue(transparentColor); GeneralParameterValue[] readParams = new GeneralParameterValue[] {footprintBehaviorParam, inputTransparentColor}; GridCoverage2D coverage = reader.read(readParams); reader.dispose(); assertNotNull(coverage); return coverage; }
value = d.createValue();
@Override public ParameterValue<T> createValue() {return descriptor.createValue();} @Override public String toWKT() {return descriptor.toWKT();}
/** * Constructs a new group of tensor parameters for the given properties. */ @SuppressWarnings({"unchecked","rawtypes"}) TensorValues(final Map<String,?> properties, final TensorParameters<E> descriptors) { super(properties, 1, 1); this.descriptors = descriptors; dimensions = new ParameterValue[descriptors.rank()]; for (int i=0; i<dimensions.length; i++) { dimensions[i] = descriptors.getDimensionDescriptor(i).createValue(); } }
/** * Constructs a new group of tensor parameters for the given properties. */ @SuppressWarnings({"unchecked","rawtypes"}) TensorValues(final Map<String,?> properties, final TensorParameters<E> descriptors) { super(properties, 1, 1); this.descriptors = descriptors; dimensions = new ParameterValue[descriptors.rank()]; for (int i=0; i<dimensions.length; i++) { dimensions[i] = descriptors.getDimensionDescriptor(i).createValue(); } }
/** * Creates a new instance of {@code ParameterValue}. * This method delegates the work to {@link org.apache.sis.parameter.DefaultParameterDescriptor} * since this {@code ServiceParameter} class is not a full-featured parameter descriptor implementation. * * @return a new instance of {@code ParameterValue}. */ @Override public ParameterValue<?> createValue() { ParameterDescriptor<?> desc; synchronized (this) { desc = descriptor; if (desc == null) { descriptor = desc = ReferencingServices.getInstance().toImplementation(this); } } return desc.createValue(); }
/** * Creates a new instance of {@code ParameterValue}. * This method delegates the work to {@link org.apache.sis.parameter.DefaultParameterDescriptor} * since this {@code ServiceParameter} class is not a full-featured parameter descriptor implementation. * * @return a new instance of {@code ParameterValue}. */ @Override public ParameterValue<?> createValue() { ParameterDescriptor<?> desc; synchronized (this) { desc = descriptor; if (desc == null) { descriptor = desc = ReferencingServices.getInstance().toImplementation(this); } } return desc.createValue(); }
descriptor = group.getDescriptor(); content = group.values(); automatic = (Parameter) v3.getDescriptor().createValue(); descriptor = group.getDescriptor(); content = group.values(); automatic = (Parameter) v3.getDescriptor().createValue();
/** * Constructs a copy of the given matrix parameters. * If {@code clone} is true, the new group will be a clone of the given group. * If {@code clone} is false, the new group will be initialized to default values. */ TensorValues(final TensorValues<E> other, final boolean clone) { super(other); descriptors = other.descriptors; dimensions = other.dimensions.clone(); for (int i=0; i<dimensions.length; i++) { final ParameterValue<Integer> dim = dimensions[i]; dimensions[i] = clone ? dim.clone() : dim.getDescriptor().createValue(); } if (clone) { values = clone(other.values); } }
/** * Constructs a copy of the given matrix parameters. * If {@code clone} is true, the new group will be a clone of the given group. * If {@code clone} is false, the new group will be initialized to default values. */ TensorValues(final TensorValues<E> other, final boolean clone) { super(other); descriptors = other.descriptors; dimensions = other.dimensions.clone(); for (int i=0; i<dimensions.length; i++) { final ParameterValue<Integer> dim = dimensions[i]; dimensions[i] = clone ? dim.clone() : dim.getDescriptor().createValue(); } if (clone) { values = clone(other.values); } }
parameter = dDescriptor.createValue(); assertEquals("name", "Test", dDescriptor.getName().getCode()); assertEquals("unit", SI.METRE, dDescriptor.getUnit());
final ParameterValue<Integer> value = descriptor.createValue(); assertEquals("Expected a parameter initialized to the default value.", 10, value.intValue()); assertSame(value, Parameters.cast(value, Integer.class));
@Test public void testFilter() throws Exception { final Filter securityFilter = ECQL.toFilter("A > 10"); final Filter requestFilter = ECQL.toFilter("B < 10"); // create the mocks we need Format format = setupFormat(); GridCoverage2DReader reader = createNiceMock(GridCoverage2DReader.class); expect(reader.getFormat()).andReturn(format).anyTimes(); setupReadAssertion(reader, requestFilter, securityFilter); CoverageAccessLimits accessLimits = new CoverageAccessLimits(CatalogMode.HIDE, securityFilter, null, null); SecuredGridCoverage2DReader secured = new SecuredGridCoverage2DReader(reader, WrapperPolicy.readOnlyHide(accessLimits)); final ParameterValue pv = ImageMosaicFormat.FILTER.createValue(); pv.setValue(requestFilter); secured.read(new GeneralParameterValue[] {pv}); }
@Test public void testFilterOnStructured() throws Exception { final Filter securityFilter = ECQL.toFilter("A > 10"); final Filter requestFilter = ECQL.toFilter("B < 10"); DefaultSecureDataFactory factory = new DefaultSecureDataFactory(); // create the mocks we need Format format = setupFormat(); StructuredGridCoverage2DReader reader = createNiceMock(StructuredGridCoverage2DReader.class); expect(reader.getFormat()).andReturn(format).anyTimes(); setupReadAssertion(reader, requestFilter, securityFilter); CoverageAccessLimits accessLimits = new CoverageAccessLimits(CatalogMode.HIDE, securityFilter, null, null); Object securedObject = factory.secure(reader, WrapperPolicy.readOnlyHide(accessLimits)); assertTrue(securedObject instanceof SecuredStructuredGridCoverage2DReader); SecuredStructuredGridCoverage2DReader secured = (SecuredStructuredGridCoverage2DReader) securedObject; final ParameterValue pv = ImageMosaicFormat.FILTER.createValue(); pv.setValue(requestFilter); secured.read(new GeneralParameterValue[] {pv}); }
final ParameterValue<?> secondOccurrence = value.getDescriptor().createValue(); group.values().add(secondOccurrence); secondOccurrence.setValue(50);