package com.esri.geoevent.solutions.processor.ellipse; /* * #%L * Esri :: AGES :: Solutions :: Processor :: Geometry * $Id:$ * $HeadURL:$ * %% * Copyright (C) 2013 - 2014 Esri * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.esri.ges.core.geoevent.GeoEventDefinition; import com.esri.ges.core.property.LabeledValue; import com.esri.ges.core.property.PropertyDefinition; import com.esri.ges.core.property.PropertyException; import com.esri.ges.core.property.PropertyType; import com.esri.ges.manager.geoeventdefinition.GeoEventDefinitionManager; import com.esri.ges.processor.GeoEventProcessorDefinitionBase; public class EllipseProcessorDefinition extends GeoEventProcessorDefinitionBase { GeoEventDefinitionManager manager; private static final Log LOG = LogFactory .getLog(EllipseProcessorDefinition.class); public EllipseProcessorDefinition() throws PropertyException { } public void setManager(GeoEventDefinitionManager m) { try { this.manager = m; List<LabeledValue> allowedSources = new ArrayList<LabeledValue>(); allowedSources.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.SRC_CONSTANT_LBL}","Constant")); allowedSources.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.SRC_EVENT_LBL}","Event")); PropertyDefinition procMajAxisSource = new PropertyDefinition( "majorAxisSource", PropertyType.String, "", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MAJOR_AXIS_SOURCE}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MAJOR_AXIS_SOURCE}", true, false, allowedSources); propertyDefinitions.put(procMajAxisSource.getPropertyName(), procMajAxisSource); PropertyDefinition procMajorAxisRadius = new PropertyDefinition( "majorAxisRadius", PropertyType.Double, 10000.0, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MAJOR_AXIS_RADIUS}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MAJOR_AXIS_RADIUS}", true, false); procMajorAxisRadius.setDependsOn("majorAxisSource=Constant"); propertyDefinitions.put(procMajorAxisRadius.getPropertyName(), procMajorAxisRadius); PropertyDefinition procMajAxisEvent = new PropertyDefinition( "majorAxisEvent", PropertyType.String, "majorAxis", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MAJOR_AXIS_FIELD}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MAJOR_AXIS_FIELD}", true, false); procMajAxisEvent.setDependsOn("majorAxisSource=Event"); propertyDefinitions.put(procMajAxisEvent.getPropertyName(), procMajAxisEvent); PropertyDefinition procMinAxisSource = new PropertyDefinition( "minorAxisSource", PropertyType.String, "", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MINOR_AXIS_SOURCE}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MINOR_AXIS_SOURCE}", true, false, allowedSources); propertyDefinitions.put(procMinAxisSource.getPropertyName(), procMinAxisSource); PropertyDefinition procMinorAxisRadius = new PropertyDefinition( "minorAxisRadius", PropertyType.Double, 5000.0, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MINOR_AXIS_RADIUS}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MINOR_AXIS_RADIUS}", true, false); procMinorAxisRadius.setDependsOn("minorAxisSource=Constant"); propertyDefinitions.put(procMinorAxisRadius.getPropertyName(), procMinorAxisRadius); PropertyDefinition procMinAxisEvent = new PropertyDefinition( "minorAxisEvent", PropertyType.String, "minorAxis", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_MINOR_AXIS_FIELD}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_MINOR_AXIS_FIELD}", true, false); procMinAxisEvent.setDependsOn("minorAxisSource=Event"); propertyDefinitions.put(procMinAxisEvent.getPropertyName(), procMinAxisEvent); List<LabeledValue> unitsAllowedVals = new ArrayList<LabeledValue>(); unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_METERS_LBL}","Meters")); unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_KM_LBL}","Kilometers")); unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_FT_LBL}","Feet")); unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_MILES_LBL}","Miles")); unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_NM_LBL}","Nautical Miles")); PropertyDefinition procUnits = new PropertyDefinition("units", PropertyType.String, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.UNITS_METERS_LBL}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_UNITS}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_UNITS}", true, false, unitsAllowedVals); propertyDefinitions.put(procUnits.getPropertyName(), procUnits); PropertyDefinition procRotationSource = new PropertyDefinition( "rotationSource", PropertyType.String, "", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_ROTATION_SOURCE}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_ROTATION_SOURCE}", true, false, allowedSources); propertyDefinitions.put(procRotationSource.getPropertyName(), procRotationSource); PropertyDefinition procRotationAngle = new PropertyDefinition( "rotation", PropertyType.Double, 0.0, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_ROTATION}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_ROTATION}", true, false); procRotationAngle.setDependsOn("rotationSource=Constant"); propertyDefinitions.put(procRotationAngle.getPropertyName(), procRotationAngle); PropertyDefinition procRotationEvent = new PropertyDefinition( "rotationEvent", PropertyType.String, "rotation", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_ROTATION_FIELD}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_ROTATION_FIELD}", true, false); procRotationEvent.setDependsOn("rotationSource=Event"); propertyDefinitions.put(procRotationEvent.getPropertyName(), procRotationEvent); PropertyDefinition procWKIDIn = new PropertyDefinition("wkidin", PropertyType.Integer, 4326, "Input WKID", "Coordinate system of input feature", true, false); propertyDefinitions.put(procWKIDIn.getPropertyName(), procWKIDIn); PropertyDefinition procWKIDBuffer = new PropertyDefinition( "wkidbuffer", PropertyType.Integer, 3857, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_PROCESS_WKID}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_PROCESS_WKID}", true, false); propertyDefinitions.put(procWKIDBuffer.getPropertyName(), procWKIDBuffer); PropertyDefinition procWKIDOut = new PropertyDefinition("wkidout", PropertyType.Integer, 4326, "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.LBL_OUTPUT_WKID}", "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.DESC_OUTPUT_WKID}", true, false); propertyDefinitions.put(procWKIDOut.getPropertyName(), procWKIDOut); } catch (PropertyException e) { LOG.error("Geometry processor"); LOG.error(e.getMessage()); LOG.error(e.getStackTrace()); } catch (Exception e) { LOG.error("Geometry processor"); LOG.error(e.getMessage()); LOG.error(e.getStackTrace()); } } @Override public String getName() { return "EllipseProcessor"; } @Override public String getDomain() { return "com.esri.geoevent.solutions.processor.geometry"; } @Override public String getVersion() { return "10.5.0"; } @Override public String getLabel() { return "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.PROC_LBL}"; } @Override public String getDescription() { return "${com.esri.geoevent.solutions.processor.ellipse.ellipse-processor.PROC_DESC}"; } @Override public String getContactInfo() { return "geoeventprocessor@esri.com"; } }