/** * Returns the full set of elevation values (either as Double or NumberRange), sorted from * smaller to higher * * @throws IOException */ public TreeSet<Object> getElevationDomain() throws IOException { if (!hasElevation()) { return null; } // parse the values from the reader, they are exposed as strings... String[] elevationValues = reader.getMetadataValue(ELEVATION_DOMAIN).split(","); TreeSet<Object> elevations = new TreeSet<Object>(ELEVATION_COMPARATOR); for (String val : elevationValues) { try { elevations.add(parseNumberOrRange(val)); } catch (Exception e) { LOGGER.log(Level.WARNING, e.getMessage(), e); } } return elevations; }
public Collection<Object> convertDimensionValue(String name, String value) { List<Object> result = new ArrayList<Object>(); try { String typeName = getDomainDatatype(name); if (typeName != null) { Class<?> type = Class.forName(typeName); if (type == java.util.Date.class) { result.addAll(new TimeParser().parse(value)); } else if (Number.class.isAssignableFrom(type) && !value.contains(",")) { result.add(parseNumberOrRange(value)); } else { for (String element : value.split(",")) { result.add(Converters.convert(element, type)); } } } else { result.add(value); } } catch (Exception e) { LOGGER.log(Level.WARNING, "Failed to convert dimension value: ", e); result.add(value); } return result; }