@Override public void marshal( Object original, HierarchicalStreamWriter writer, MarshallingContext context) { NumberRange range = (NumberRange) original; writer.startNode("min"); if (Double.isInfinite(((Number) range.getMinValue()).doubleValue())) { context.convertAnother("-inf"); } else { context.convertAnother(range.getMinValue()); } writer.endNode(); writer.startNode("max"); if (Double.isInfinite(((Number) range.getMaxValue()).doubleValue())) { context.convertAnother("inf"); } else { context.convertAnother(range.getMaxValue()); } writer.endNode(); }
/** * Returns the {@linkplain #getMaxValue maximum value} as a {@code double}. If this range is * unbounded, then {@link Double#POSITIVE_INFINITY} is returned. * * @return The maximum value. */ public double getMaximum() { final Number value = (Number) getMaxValue(); return (value != null) ? value.doubleValue() : Double.POSITIVE_INFINITY; }
/** * Setup a String containing vertical domain by doing a scan of a set of vertical Elements * * @param verticalElements * @return */ private String buildVerticalList(SortedSet<? extends NumberRange<Double>> verticalElements) { Iterator<NumberRange<Double>> iterator = (Iterator<NumberRange<Double>>) verticalElements.iterator(); LinkedHashSet<String> ranges = new LinkedHashSet<String>(); while (iterator.hasNext()) { NumberRange<Double> range = iterator.next(); ranges.add((range.getMinValue() + "/" + range.getMaxValue())); } return buildResultsString(ranges); }
if (Byte.class.equals(rt) || Short.class.equals(rt) || Integer.class.equals(rt)) { final int min = range.getMinValue().intValue(); final int max = range.getMaxValue().intValue(); if (min >= 0) { if (max < 0x100) {
"3 or 4 band, 8 bit unsigned image, assumed to be " + "RGB or RGBA respectively and nodata value hardcoded to 255"); return (Number) nativeCellType.getSampleValueRange().getMaxValue();
boolean maxInc = range.isMaxIncluded(); this.minimum = doubleValue(type, range.getMinValue(), minInc ? 0 : +1); this.maximum = doubleValue(type, range.getMaxValue(), maxInc ? 0 : -1); throw new IllegalArgumentException( Errors.format( ErrorKeys.BAD_RANGE_$2, range.getMinValue(), range.getMaxValue()));
final Comparable[] args = new Comparable[] { range1.getMinValue(), range1.getMaxValue(), range2.getMinValue(), range2.getMaxValue() }; for (int j = 0; j < args.length; j++) {
final NumberRange range = category.getRange(); final Comparable min = range.getMinValue(); final Comparable max = range.getMaxValue(); @SuppressWarnings("unchecked") final int c = min.compareTo(max);
/** * Returns the {@linkplain #getMaxValue maximum value} as a {@code double}. * If this range is unbounded, then {@link Double#POSITIVE_INFINITY} is returned. */ public double getMaximum() { final Number value = (Number) getMaxValue(); return (value!=null) ? value.doubleValue() : Double.POSITIVE_INFINITY; }
/** * Returns the {@linkplain #getMaxValue maximum value} as a {@code double}. * If this range is unbounded, then {@link Double#POSITIVE_INFINITY} is returned. * * @return The maximum value. */ @SuppressWarnings("unchecked") public double getMaximum() { final Number value = (Number) getMaxValue(); return (value != null) ? value.doubleValue() : Double.POSITIVE_INFINITY; }
/** * Returns the <var>z</var> value in the middle of the specified range. * If the range is null, then this method returns {@link Double#NaN}. */ private static double getZ(final NumberRange range) { if (range != null) { final Number lower = (Number) range.getMinValue(); final Number upper = (Number) range.getMaxValue(); if (lower != null) { if (upper != null) { return 0.5 * (lower.doubleValue() + upper.doubleValue()); } else { return lower.doubleValue(); } } else if (upper != null) { return upper.doubleValue(); } } return Double.NaN; }
/** * Setup a String containing vertical domain by doing a scan of a set of vertical Elements * * @param verticalElements * @return */ private String buildVerticalList(SortedSet<? extends NumberRange<Double>> verticalElements) { Iterator<NumberRange<Double>> iterator = (Iterator<NumberRange<Double>>) verticalElements.iterator(); LinkedHashSet<String> ranges = new LinkedHashSet<String>(); while (iterator.hasNext()) { NumberRange<Double> range = iterator.next(); ranges.add((range.getMinValue() + "/" + range.getMaxValue())); } return buildResultsString(ranges); }
/** * Builds a single Z range from the domain, be it made of Double or NumberRange objects * * @param values */ private NumberRange<Double> getMinMaxZInterval(TreeSet<? extends Object> values) { Object minValue = values.first(); Object maxValue = values.last(); Double min, max; if (minValue instanceof NumberRange) { min = ((NumberRange<Double>) minValue).getMinValue(); } else { min = (Double) minValue; } if (maxValue instanceof NumberRange) { max = ((NumberRange<Double>) maxValue).getMaxValue(); } else { max = (Double) maxValue; } return new NumberRange<Double>(Double.class, min, max); }
/** * Get the value from the input object. Take care of time elements since they need to be * referred to the time origin * * @param input * @param isTime does this object represents a temporal entity? * @param endValue specify whether it needs to return the second value of a range */ private Object getValue(Object input, boolean isTime, boolean endValue) { if (isTime) { return getTime(input, endValue); } else if (input instanceof NumberRange) { NumberRange range = (NumberRange) input; return endValue ? range.getMaxValue() : range.getMinValue(); } // Simply return back the value return input; }
/** * Get the value from the input object. Take care of time elements since they need * to be referred to the time origin * * @param input * @param isTime does this object represents a temporal entity? * @param endValue specify whether it needs to return the second value of a range * @return */ private Object getValue(Object input, boolean isTime, boolean endValue) { if (isTime) { return getTime(input, endValue); } else if (input instanceof NumberRange) { NumberRange range = (NumberRange) input; return endValue ? range.getMaxValue() : range.getMinValue(); } //Simply return back the value return input; }
/** * Checks whether or not two DomainElement1Ds input range overlaps * * @param domainElements * to be checked * @param idx * index to start with */ static void domainElementsOverlap(DomainElement1D[] domainElements, int idx) { // Two domain elements have overlapping ranges; // Format an error message............... final NumberRange<? extends Number> range1 = domainElements[idx - 1] .getRange(); final NumberRange<? extends Number> range2 = domainElements[idx].getRange(); final Comparable[] args = new Comparable[] { range1.getMinValue(), range1.getMaxValue(), range2.getMinValue(), range2.getMaxValue() }; for (int j = 0; j < args.length; j++) { if (args[j] instanceof Number) { final double value = ((Number) args[j]).doubleValue(); if (Double.isNaN(value)) { String hex = Long.toHexString(Double .doubleToRawLongBits(value)); args[j] = "NaN(" + hex + ')'; } } } throw new IllegalArgumentException(Errors.format( ErrorKeys.RANGE_OVERLAP_$4, args)); }
/** * Set a {@link Filter} based on the specified elevation subset, or null if missing. * * @param elevationSubset * @param start * @param end */ private Filter setElevationFilter(NumberRange elevationSubset, String start, String end) { if (elevationSubset != null) { if (end == null) { // single value elevation return betweenFilter( start, elevationSubset.getMinValue(), elevationSubset.getMaxValue()); } else { return rangeFilter( start, end, elevationSubset.getMinValue(), elevationSubset.getMaxValue()); } } return null; }
/** * Encode the interval range * * @param range */ private boolean setRange(NumberRange<? extends Number> range) { if (range != null && !Double.isInfinite(range.getMaximum()) && !Double.isInfinite(range.getMinimum())) { start("swe:interval"); chars(range.getMinValue() + " " + range.getMaxValue()); end("swe:interval"); return true; } return false; }
endElevation, elevationRange.getMinValue(), elevationRange.getMaxValue(), filter);
@Override public void marshal( Object source, HierarchicalStreamWriter writer, MarshallingContext context) { NumberRange<?> range = (NumberRange<?>) source; writer.startNode("minValue"); writer.setValue(String.valueOf(range.getMinValue())); writer.endNode(); writer.startNode("maxValue"); writer.setValue(String.valueOf(range.getMaxValue())); writer.endNode(); if (!range.isMinIncluded()) { writer.startNode("isMinIncluded"); writer.setValue("false"); writer.endNode(); } if (!range.isMaxIncluded()) { writer.startNode("isMaxIncluded"); writer.setValue("false"); writer.endNode(); } }