package com.esri.geoevent.solutions.processor.queryreport;
/*
* #%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.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.datastore.agsconnection.ArcGISServerConnectionManager;
import com.esri.ges.manager.geoeventdefinition.GeoEventDefinitionManager;
import com.esri.ges.processor.GeoEventProcessorDefinitionBase;
public class QueryReportProcessorDefinition extends
GeoEventProcessorDefinitionBase {
//public GeoEventDefinitionManager manager;
private Tokenizer tokenizer = new Tokenizer();
private static final Log LOG = LogFactory
.getLog(QueryReportProcessorDefinition.class);
private String lblFileName = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_FILE_NAME}";
private String descFileName = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_FILE_NAME}";
private String lblReportTitle = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_REPORT_TITLE}";
private String descReportTitle = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_REPORT_TITLE}";
private String lblReportHeader = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_REPORT_HEADER}";
private String descReportHeader = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_REPORT_HEADER}";
private String lblGeoSrc = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_GEO_SRC}";
private String descGeoSrc = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_GEO_SRC}";
private String lblGeoFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_GEO_FIELD}";
private String descGeoFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_GEO_FIELD}";
private String lblBufferDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_BUFFER_DISTANCE}";
private String descBufferDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_BUFFER_DISTANCE}";
private String lblBufferUnits = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_BUFFER_UNITS}";
private String descBufferUnits = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_BUFFER_UNITS}";
private String lblWKIDIn = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_WKID_IN}";
private String descWKIDIn = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_WKID_IN}";
private String lblWKIDBuffer = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_WKID_BUFFER}";
private String descWKIDBuffer = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_WKID_BUFFER}";
private String lblWKIDOut = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_WKID_OUT}";
private String descWKIDOut = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_WKID_OUT}";
private String lblGenerateTimestampToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_GENERATE_TIMESTAMP_TOKEN}";
private String descGenerateTimestampToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_GENERATE_TIMESTAMP_TOKEN}";
private String lblTimeStampFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_TIMESTAMP_FIELD}";
private String descTimeStampFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_TIMESTAMP_FIELD}";
private String lblTimeStampToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_TIMESTAMP_Token}";
private String descTimeStampToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_TIMESTAMP_Token}";
private String lblHost = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_HOST}";
private String descHost = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_HOST}";
private String lblGeoDefName = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_GEO_DEF_NAME}";
private String descGeoDefName = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_GEO_DEF_NAME}";
private String lblConnection = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_CONNECTION}";
private String descConnection = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_CONNECTION}";
private String lblFolder = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_FOLDER}";
private String descFolder = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_FOLDER}";
private String lblService = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_SERVICE}";
private String descService = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_SERVICE}";
private String lblLayer = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_LAYER}";
private String descLayer = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_LAYER}";
private String lblLayerHeader = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_LAYER_HEADER}";
private String descLayerHeader = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_LAYER_HEADER}";
private String lblWC = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_WC}";
private String descWC = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_WC}";
private String lblCalculateDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_CALCULATE_DISTANCE}";
private String descCalculateDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_CALCULATE_DISTANCE}";
private String lblUseCentroid = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_USE_CENTROID}";
private String descUseCentroid = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_USE_CENTROID}";
private String lblSortByDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_SORT_BY_DIST}";
private String descSortByDist = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_SORT_BY_DIST}";
private String lblDistUnits = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_DIST_UNITS}";
private String descDistUnits = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_DIST_UNITS}";
private String distLabel= "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DISTANCE_LABEL}";
private String lblDistToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_DIST_TOKEN}";
private String descDistToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_DIST_TOKEN}";
private String lblQueryFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_QUERY_FIELD}";
private String descQueryFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_QUERY_FIELD}";
private String lblSortFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_SORT_FIELD}";
private String descSortFld = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_SORT_FIELD}";
private String itemLabel = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.ITEM_LABEL}";
private String lblItemToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_ITEM_TOKEN}";
private String descItemToken = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_ITEM_TOKEN}";
private String lblItemCfg = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_ITEM_CONFIG}";
private String descItemCfg = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_ITEM_CONFIG}";
private String lblEndPoint = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.LBL_ENDPOINT}";
private String descEndPoint = "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.DESC_ENDPOINT}";
public QueryReportProcessorDefinition() {
try {
PropertyDefinition procReportName = new PropertyDefinition(
"filename", PropertyType.String, "", lblFileName,
descFileName, true, false);
propertyDefinitions.put(procReportName.getPropertyName(),
procReportName);
PropertyDefinition procReportTitle = new PropertyDefinition(
"title", PropertyType.String, "", lblReportTitle,
descReportTitle, true, false);
propertyDefinitions.put(procReportTitle.getPropertyName(),
procReportTitle);
PropertyDefinition procReportHeader = new PropertyDefinition(
"header", PropertyType.String, "", lblReportHeader,
descReportHeader, false, false);
propertyDefinitions.put(procReportHeader.getPropertyName(),
procReportHeader);
List<LabeledValue> allowedGeoSources = new ArrayList<LabeledValue>();
allowedGeoSources.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.SRC_GEO_EVENT_LBL}","Geoevent"));
allowedGeoSources.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.SRC_GEO_EVENT_DEF_LBL}","Event_Definition"));
allowedGeoSources.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.SRC_GEO_BUFFER_LBL}","Buffer"));
PropertyDefinition procGeometrySource = new PropertyDefinition(
"geosrc", PropertyType.String, "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.SRC_GEO_EVENT_LBL}",
lblGeoSrc, descGeoSrc,
true, false, allowedGeoSources);
propertyDefinitions.put(procGeometrySource.getPropertyName(),
procGeometrySource);
PropertyDefinition procGeometryEventDef = new PropertyDefinition(
"geoeventdef", PropertyType.String, "",
lblGeoFld,
descGeoFld, false,
false);
procGeometryEventDef.setDependsOn("geosrc=Event_Definition");
propertyDefinitions.put(procGeometryEventDef.getPropertyName(),
procGeometryEventDef);
PropertyDefinition procSetAsEventGeo = new PropertyDefinition(
"setgeo", PropertyType.Boolean, false,
"Set events geometry to input",
"Set geoevent's geometry to input geometry", false, false);
procSetAsEventGeo.setDependsOn("geosrc=Event_Definition");
propertyDefinitions.put(procSetAsEventGeo.getPropertyName(),
procSetAsEventGeo);
PropertyDefinition procRadius = new PropertyDefinition("radius",
PropertyType.Double, 1000, lblBufferDist, descBufferDist, true,
false);
procRadius.setDependsOn("geosrc=Buffer");
propertyDefinitions.put(procRadius.getPropertyName(), procRadius);
List<LabeledValue> unitsAllowedVals = new ArrayList<LabeledValue>();
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_METERS_LBL}","Meters"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_KM_LBL}","Kilometers"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_FT_LBL}","Feet"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_MILES_LBL}","Miles"));
unitsAllowedVals.add(new LabeledValue("${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_NM_LBL}","Nautical Miles"));
PropertyDefinition procUnits = new PropertyDefinition("units",
PropertyType.String, "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_METERS_LBL}", lblBufferUnits, descBufferUnits,
true, false, unitsAllowedVals);
procUnits.setDependsOn("geosrc=Buffer");
propertyDefinitions.put(procUnits.getPropertyName(), procUnits);
PropertyDefinition procWKIDBuffer = new PropertyDefinition(
"wkidbuffer", PropertyType.Integer, 3857, lblWKIDBuffer,
descWKIDBuffer, true, false);
procWKIDBuffer.setDependsOn("geosrc=Buffer");
propertyDefinitions.put(procWKIDBuffer.getPropertyName(),
procWKIDBuffer);
PropertyDefinition procWKIDOut = new PropertyDefinition("wkidout",
PropertyType.Integer, 4326,lblWKIDOut,
descWKIDOut, true, false);
propertyDefinitions.put(procWKIDOut.getPropertyName(), procWKIDOut);
PropertyDefinition procUseTimeStamp = new PropertyDefinition(
"usetimestamp",
PropertyType.Boolean,
false,
lblGenerateTimestampToken,
descGenerateTimestampToken,
true, false);
propertyDefinitions.put(procUseTimeStamp.getPropertyName(),
procUseTimeStamp);
PropertyDefinition procHost = new PropertyDefinition("host",
PropertyType.String, "", lblHost, descHost,
true, false);
propertyDefinitions.put(procHost.getPropertyName(), procHost);
PropertyDefinition procGEDName = new PropertyDefinition("gedname",
PropertyType.String, "", lblGeoDefName, descGeoDefName,
true, false);
propertyDefinitions.put(procGEDName.getPropertyName(), procGEDName);
PropertyDefinition pConn = new PropertyDefinition("connection", PropertyType.ArcGISConnection, null, lblConnection, descConnection, true, false);
propertyDefinitions.put(pConn.getPropertyName(), pConn);
PropertyDefinition pFolder = new PropertyDefinition("folder", PropertyType.ArcGISFolder, null, lblFolder, descFolder, true, false);
propertyDefinitions.put(pFolder.getPropertyName(), pFolder);
PropertyDefinition pService = new PropertyDefinition("service", PropertyType.ArcGISFeatureService, null, lblService, descService, true, false);
propertyDefinitions.put(pService.getPropertyName(), pService);
PropertyDefinition pLayer = new PropertyDefinition("layer", PropertyType.ArcGISLayer, null, lblLayer, descLayer, true, false);
propertyDefinitions.put(pLayer.getPropertyName(), pLayer);
PropertyDefinition pdLyrHeader = new PropertyDefinition("lyrheader", PropertyType.String, "", lblLayerHeader, descLayerHeader, false, false);
propertyDefinitions.put(pdLyrHeader.getPropertyName(), pdLyrHeader);
PropertyDefinition pdRE = new PropertyDefinition("endpoint", PropertyType.String, "", lblEndPoint, descEndPoint, false, false);
propertyDefinitions.put(pdRE.getPropertyName(), pdRE);
PropertyDefinition pdwc = new PropertyDefinition( "wc", PropertyType.String, "", lblWC, descWC, false, false);
propertyDefinitions.put(pdwc.getPropertyName(), pdwc);
PropertyDefinition pdCalculateDistance = new PropertyDefinition(
"calcDistance", PropertyType.Boolean, false,
lblCalculateDist,
descCalculateDist, false, false);
propertyDefinitions.put(pdCalculateDistance.getPropertyName(),
pdCalculateDistance);
PropertyDefinition pdUseCentroid = new PropertyDefinition(
"usecentroid", PropertyType.Boolean, true,
lblUseCentroid,
descUseCentroid, false, false);
pdUseCentroid.setDependsOn("calcDistance=true");
propertyDefinitions.put(pdUseCentroid.getPropertyName(),
pdUseCentroid);
PropertyDefinition pdSortByDist = new PropertyDefinition("sortdist", PropertyType.Boolean, "false", lblSortByDist, descSortByDist, false, false);
pdSortByDist.setDependsOn("calcDistance=true");
propertyDefinitions.put(pdSortByDist.getPropertyName(),
pdSortByDist);
PropertyDefinition procDistUnits = new PropertyDefinition(
"dist_units", PropertyType.String, "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.UNITS_METERS_LBL}", lblDistUnits,
descDistUnits, true, false, unitsAllowedVals);
procDistUnits.setDependsOn("calcDistance=true");
propertyDefinitions.put(procDistUnits.getPropertyName(),
procDistUnits);
PropertyDefinition pField = new PropertyDefinition("field",
PropertyType.String, null, lblQueryFld, descQueryFld,
true, false);
propertyDefinitions.put(pField.getPropertyName(), pField);
PropertyDefinition pdSortField = new PropertyDefinition("sortfield", PropertyType.String, "", lblSortFld, descSortFld, false, false);
pdSortField.setDependsOn("sortdist=false");
propertyDefinitions.put(pdSortField.getPropertyName(),
pdSortField);
PropertyDefinition pdItemConfig = new PropertyDefinition(
"item-config",
PropertyType.String,
"",
lblItemCfg,
descItemCfg,
true, false);
propertyDefinitions.put(pdItemConfig.getPropertyName(),
pdItemConfig);
} catch (PropertyException e) {
LOG.error("Geometry processor");
LOG.error(e.getMessage());
LOG.error(e.getStackTrace());
return;
} catch (Exception e) {
LOG.error("Geometry processor");
LOG.error(e.getMessage());
LOG.error(e.getStackTrace());
return;
}
}
//public void setManager(GeoEventDefinitionManager m) {
//this.manager = m;
//}
@Override
public String getName() {
return "QueryReportProcessor";
}
@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.queryreport.query-report-processor.PROCESSOR_LBL}";
}
@Override
public String getDescription() {
return "${com.esri.geoevent.solutions.processor.queryreport.query-report-processor.PROCESSOR_DESC}";
}
@Override
public String getContactInfo() {
return "geoeventprocessor@esri.com";
}
}