52n-wps-algorithm-gcube/src/test/java/org/n52/wps/server/StringJoinAnnotatedAlgorith...

94 lines
2.8 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (C) 2007 - 2016 52°North Initiative for Geospatial Open Source
* Software GmbH
*
* 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.
*/
package org.n52.wps.server;
import com.google.common.base.Joiner;
import java.util.List;
import org.n52.wps.algorithm.annotation.Algorithm;
import org.n52.wps.algorithm.annotation.LiteralDataInput;
import org.n52.wps.algorithm.annotation.LiteralDataOutput;
import org.n52.wps.algorithm.annotation.Execute;
/**
*
* @author tkunicki
*/
@Algorithm(
version="0.0.1",
title="String Join Algorithm (Annotated)",
abstrakt="This is an example algorithm implementation described using annotations that joins strings using the specified delimiter.",
statusSupported=false,
storeSupported=false)
public class StringJoinAnnotatedAlgorithm extends AbstractAnnotatedAlgorithm {
public enum Delimiter {
SPACE(' '),
TAB('\t'),
PIPE('|'),
COMMA(','),
SEMI_COLON(';'),
COLON(':');
public final char value;
Delimiter(char value) {
this.value = value;
}
}
private List<String> inputStrings;
private Delimiter inputDelimiter;
private String outputString;
@LiteralDataInput(
identifier="INPUT_STRINGS",
title="Input Strings",
abstrakt="The strings you want joined.",
minOccurs=2,
maxOccurs=32)
public void setInputString(List<String> inputStrings) {
this.inputStrings = inputStrings;
}
@LiteralDataInput(
identifier="INPUT_DELIMITER",
title="Delimiter",
abstrakt="The value to use when joining strings")
public void setInputDelimiter(Delimiter inputDelimiter) {
this.inputDelimiter = inputDelimiter;
}
@LiteralDataOutput(
identifier="OUTPUT_STRING",
title="Output String",
abstrakt="The strings joined with the delimiter")
public String getOutputString() {
return outputString;
}
@LiteralDataInput(identifier="yourMom")
public String yourMom;
@Execute
public void reverse() {
// don't need to do any parameter bounds checking that is specified
// as part of the DescribeProcess, it's already done before this
// method is called...
outputString = Joiner.on(inputDelimiter.value).join(inputStrings);
}
}