/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2014 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wms.dimension; import java.util.Date; import org.geoserver.catalog.DimensionDefaultValueSetting; import org.geoserver.catalog.DimensionInfo; import org.geoserver.catalog.ResourceInfo; import org.geotools.feature.type.DateUtil; /** * * Abstract parent class for DefaultValueSelectionStrategy implementations. * * @author Ilkka Rinne / Spatineo Inc. for Finnish Meteorological Institute * */ public abstract class AbstractDefaultValueSelectionStrategy implements DimensionDefaultValueSelectionStrategy { @Override /** * Formats the dimension default value for the capabilities file * as ISO 8601 DateTime for TIME and as a number for ELEVATION. * Assumes that getDefaultValue returns a single value, classes handling ranges have to override this method */ public String getCapabilitiesRepresentation(ResourceInfo resource, String dimensionName, DimensionInfo dimensionInfo) { String retval = null; if (dimensionName.equals(ResourceInfo.TIME)){ Date dateValue = (Date) getDefaultValue(resource, dimensionName, dimensionInfo, Date.class); if(dateValue == null) { return DimensionDefaultValueSetting.TIME_CURRENT; } retval = DateUtil.serializeDateTime(dateValue.getTime(), true); } else if (dimensionName.equals(ResourceInfo.ELEVATION)){ Number numberValue = (Number) getDefaultValue(resource, dimensionName, dimensionInfo, Number.class); if(numberValue == null) { return "0"; } retval = numberValue.toString(); } else { Object value = getDefaultValue(resource, dimensionName, dimensionInfo, Object.class); retval = value.toString(); } return retval; } }