package org.geotools.coverage.io.impl.range; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; import javax.measure.Measure; import javax.measure.quantity.Quantity; import javax.measure.unit.Unit; import org.geotools.coverage.io.range.Axis; import org.geotools.coverage.io.range.FieldType; import org.opengis.coverage.SampleDimension; import org.opengis.feature.type.Name; import org.opengis.util.InternationalString; public class DefaultFieldType implements FieldType { private List<Axis<?, ?>> axes; private Name name; private InternationalString description; private Unit<Quantity> unit; private Set<SampleDimension> sampleDimensions; /** * * @param name * @param description * @param unit * @param axes * @param samples */ public DefaultFieldType(Name name, InternationalString description, Unit<?> unit, List<Axis<?,?>> axes, Set<SampleDimension> samples) { this.name = name; this.description = description; this.axes = axes; this.sampleDimensions = samples; } public List<Axis<?,?>> getAxes() { return Collections.unmodifiableList(axes); } public List<Name> getAxesNames() { List<Name> list = new ArrayList<Name>(); for( Axis<?,?> axis : axes ){ list.add( axis.getName() ); } return list; } public Axis<?,?> getAxis(Name name) { for( Axis<?,?> axis : axes ){ if( name.equals( axis.getName() )){ return axis; } } return null; } public InternationalString getDescription() { return description; } public Name getName() { return name; } public SampleDimension getSampleDimension(Measure<?,?> key) { return null; // TODO: need to figure out how to record this association } public Set<SampleDimension> getSampleDimensions() { if (sampleDimensions!=null) return Collections.unmodifiableSet( sampleDimensions ); return Collections.emptySet(); } /** Unit type for this field */ public Unit<Quantity> getUnitOfMeasure() { return unit; // TODO Is this duplicated with sample dimensions ? } }