/*
* Copyright 2016 the original author or authors.
*
* 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.springframework.cloud.stream.module.transform;
import javax.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Configuration properties for the Scriptable Transform Processor module.
*
* @author Andy Clement
*/
@ConfigurationProperties
public class ScriptableTransformProcessorProperties {
/**
* Language of the text in the script property. Supported: groovy, javascript, ruby, python.
*/
@NotNull
private String language;
/*
* Extra notes on the script parameter. The UI will typically look after encoding
* newlines and double quotes when packaging the value to pass to the script
* property. If not using the UI, attempting to define
* a script directly in the shell for example, it is important to note:
* - newlines should be escaped (\\n)
* - a single " should be expressed in a pair "" - the DSL parser recognizes this pattern
* - If the script starts and ends with a " then they will be stripped off before treating what is
* left as the script.
*
* Examples:
* ruby: --script="return ""#{payload.upcase}"""
* javascript: --script="function double(a) {\\n return a+"" + ""+a;\\n}\\ndouble(payload);"
*/
/**
* Text of the script.
*/
@NotNull
private String script;
public String getLanguage() {
return this.language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getScript() {
return this.script;
}
public void setScript(String script) {
this.script = script;
}
}