...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <transformationModule version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.wldelft.nl/fews" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/transformationModule.xsd"> <variable> <variableId>input</variableId> <timeSeriesSet> <moduleInstanceId>UserDefinedFunctionTest</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.m</parameterId> <locationSetId>locationAttributeTest</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="day" multiplier="1"/> <relativeViewPeriod unit="day" start="0" end="1"/> <readWriteMode>editing visible to all future task runs</readWriteMode> </timeSeriesSet> </variable> <variable> <variableId>output</variableId> <timeSeriesSet> <moduleInstanceId>UserDefinedFunctionTest</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.dis</parameterId> <locationSetId>locationAttributeTest</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="day" multiplier="1"/> <relativeViewPeriod unit="day" start="0" end="1"/> <readWriteMode>editing visible to all future task runs</readWriteMode> </timeSeriesSet> </variable> <transformation id="userDefinedFunctionTestWithLocationAttributes"> <custom> <userDefined> <input> <fieldName>input</fieldName> <inputVariable> <variableId>input</variableId> </inputVariable> </input> <options> <string key="stringAttributeID" value="stringAttributeKey"></string> <string key="booleanAttributeID" value="booleanAttributeKey"></string> <string key="dateTimeAttributeID" value="dateTimeAttributeKey"></string> <string key="doubleAttributeID" value="doubleAttributeKey"></string> </options> <output> <fieldName>output</fieldName> <outputVariable> <variableId>output</variableId> </outputVariable> </output> <className>nl.wldelft.fews.openapi.transformationmodule.CustomTestFunctionWithLocationAttributes</className> </userDefined> </custom> </transformation> </transformationModule> |
Example Java class:
Code Block | ||||
---|---|---|---|---|
| ||||
package nl.wldelft.fews.openapi.transformationmodule;
import nl.wldelft.util.timeseries.Variable;
import java.util.Arrays;
public class CustomTestFunctionWithLocationAttributes implements Calculation, LocationAttributeValuesProviderConsumer {
@Input
Variable input = null;
@Input
String stringAttributeID = null;
@Input
String booleanAttributeID = null;
@Input
String dateTimeAttributeID = null;
@Input
String doubleAttributeID = null;
@Output
Variable output = null;
private LocationAttributeValuesProvider locationAttributeValuesProvider = null;
@Override
public void calculate() throws Exception {
String locationId = input.header.getLocationId();
// Single value
locationAttributeValuesProvider.getBooleanValue(locationId, booleanAttributeID);
locationAttributeValuesProvider.getStringValue(locationId, stringAttributeID);
locationAttributeValuesProvider.getNumericValue(locationId, doubleAttributeID);
locationAttributeValuesProvider.getDateTimeValue(locationId, dateTimeAttributeID);
// Multivalued
locationAttributeValuesProvider.getBooleanValues(locationId, booleanAttributeID);
locationAttributeValuesProvider.getStringValues(locationId, stringAttributeID);
locationAttributeValuesProvider.getNumericValues(locationId, doubleAttributeID);
locationAttributeValuesProvider.getDateTimeValues(locationId, dateTimeAttributeID);
}
@Override
public void setLocationAttributeValuesProvider(LocationAttributeValuesProvider locationAttributeValuesProvider) {
this.locationAttributeValuesProvider = locationAttributeValuesProvider;
}
}
|