package com.esri.geoevent.solutions.processor.buffer;
/*
* #%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.Collections;
import java.util.HashMap;
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.FieldDefinition;
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 BufferProcessorDefinition extends GeoEventProcessorDefinitionBase {
GeoEventDefinitionManager manager;
private static final Log LOG = LogFactory
.getLog(BufferProcessorDefinition.class);
private String radSrcConstant="${com.esri.geoevent.solutions.processor.buffer.buffer-processor.RADIUS_SRC_CONSTANT_LBL}";
private String radSrcEvent = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.RADIUS_SRC_EVENT_LBL}";
private String lblRadSrc = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_RAD_SRC}";
private String descRadSrc = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.DESC_RAD_SRC}";
private String lblRad = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_RADIUS}";
private String descRad = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.DESC_RADIUS}";
private String lblRadFld = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_RADIUS_FLD}";
private String descRadFld = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.DESC_RADIUS_FLD}";
private String lblUnits = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_UNITS}";
private String descUnits = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.DESC_UNITS}";
private String lblWKIDProc = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_WKID_BUFFER}";
private String descWKIDProc = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.DESC_WKID_BUFFER}";
private String lblWKIDOut = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_WKID_OUT}";
private String descWKIDOut = "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.LBL_WKID_OUT}";
public BufferProcessorDefinition() {
try {
List<String> unitsAllowedTypes = new ArrayList<String>();
unitsAllowedTypes.add("Meters");
unitsAllowedTypes.add("Kilometers");
unitsAllowedTypes.add("Feet");
unitsAllowedTypes.add("Miles");
unitsAllowedTypes.add("Nautical Miles");
List<LabeledValue> allowedRadiusSources = new ArrayList<LabeledValue>();
allowedRadiusSources.add(new LabeledValue(radSrcConstant,
"Constant"));
allowedRadiusSources.add(new LabeledValue(radSrcEvent, "Event"));
PropertyDefinition procRadiusSource = new PropertyDefinition(
"radiusSource", PropertyType.String, radSrcConstant,
lblRadSrc, descRadSrc, true, false, allowedRadiusSources);
propertyDefinitions.put(procRadiusSource.getPropertyName(),
procRadiusSource);
PropertyDefinition procRadius = new PropertyDefinition("radius",
PropertyType.Double, 0, lblRad, descRad, false, false);
procRadius.setDependsOn("radiusSource=Constant");
propertyDefinitions.put(procRadius.getPropertyName(), procRadius);
PropertyDefinition procRadiusEvent = new PropertyDefinition(
"radiusEvent", PropertyType.String, "", lblRadFld,
descRadFld, false, false);
procRadiusEvent.setDependsOn("radiusSource=Event");
// SetGeoEventAllowedFields(procRadiusEvent);
propertyDefinitions.put(procRadiusEvent.getPropertyName(),
procRadiusEvent);
List<LabeledValue> unitsAllowedVals = new ArrayList<LabeledValue>();
unitsAllowedVals
.add(new LabeledValue(
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_METERS_LBL}",
"Meters"));
unitsAllowedVals
.add(new LabeledValue(
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_KM_LBL}",
"Kilometers"));
unitsAllowedVals
.add(new LabeledValue(
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_FT_LBL}",
"Feet"));
unitsAllowedVals
.add(new LabeledValue(
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_MILES_LBL}",
"Miles"));
unitsAllowedVals
.add(new LabeledValue(
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_NM_LBL}",
"Nautical Miles"));
PropertyDefinition procUnits = new PropertyDefinition(
"units",
PropertyType.String,
"${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_METERS_LBL}",
lblUnits, descUnits, true, false, unitsAllowedVals);
propertyDefinitions.put(procUnits.getPropertyName(), procUnits);
PropertyDefinition procWKIDBuffer = new PropertyDefinition(
"wkidbuffer", PropertyType.Integer, 3857, lblWKIDProc,
descWKIDProc, true, false);
propertyDefinitions.put(procWKIDBuffer.getPropertyName(),
procWKIDBuffer);
PropertyDefinition procWKIDOut = new PropertyDefinition("wkidout",
PropertyType.Integer, 4326, lblWKIDOut, descWKIDOut, 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());
}
}
public void setManager(GeoEventDefinitionManager m) {
try {
this.manager = m;
List<String> unitsAllowedTypes = new ArrayList<String>();
unitsAllowedTypes.add("Meters");
unitsAllowedTypes.add("Kilometers");
unitsAllowedTypes.add("Feet");
unitsAllowedTypes.add("Miles");
unitsAllowedTypes.add("Nautical Miles");
List<LabeledValue> allowedRadiusSources = new ArrayList<LabeledValue>();
allowedRadiusSources.add(new LabeledValue(radSrcConstant,"Constant"));
allowedRadiusSources.add(new LabeledValue(radSrcEvent,"Event"));
PropertyDefinition procRadiusSource = new PropertyDefinition(
"radiusSource", PropertyType.String, radSrcConstant,
lblRadSrc, descRadSrc, true, false, allowedRadiusSources);
propertyDefinitions.put(procRadiusSource.getPropertyName(),
procRadiusSource);
PropertyDefinition procRadius = new PropertyDefinition("radius",
PropertyType.Double, 0, lblRad, descRad, false,
false);
procRadius.setDependsOn("radiusSource=Constant");
propertyDefinitions.put(procRadius.getPropertyName(), procRadius);
PropertyDefinition procRadiusEvent = new PropertyDefinition(
"radiusEvent", PropertyType.String, "",
lblRadFld,
descRadFld, false, false);
procRadiusEvent.setDependsOn("radiusSource=Event");
//SetGeoEventAllowedFields(procRadiusEvent);
propertyDefinitions.put(procRadiusEvent.getPropertyName(),
procRadiusEvent);
List<LabeledValue> unitsAllowedVals = new ArrayList<LabeledValue>();
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_METERS_LBL}","Meters"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_KM_LBL}","Kilometers"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_FT_LBL}","Feet"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_MILES_LBL}","Miles"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_NM_LBL}","Nautical Miles"));
PropertyDefinition procUnits = new PropertyDefinition("units",
PropertyType.String, "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.UNITS_METERS_LBL}", lblUnits, descUnits,
true, false, unitsAllowedVals);
propertyDefinitions.put(procUnits.getPropertyName(), procUnits);
PropertyDefinition procWKIDBuffer = new PropertyDefinition(
"wkidbuffer", PropertyType.Integer, 3857, lblWKIDProc,
descWKIDProc, true, false);
propertyDefinitions.put(procWKIDBuffer.getPropertyName(),
procWKIDBuffer);
PropertyDefinition procWKIDOut = new PropertyDefinition("wkidout",
PropertyType.Integer, 4326, lblWKIDOut,
descWKIDOut, 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 "BufferProcessor";
}
@Override
public String getDomain() {
return "com.esri.geoevent.solutions.processor.geometry";
}
@Override
public String getVersion() {
return "10.3.1";
}
@Override
public String getLabel() {
return "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.PROCESSOR_LABEL}";
}
@Override
public String getDescription() {
return "${com.esri.geoevent.solutions.processor.buffer.buffer-processor.PROCESSOR_DESCRIPTION}";
}
@Override
public String getContactInfo() {
return "geoeventprocessor@esri.com";
}
}