Java源码示例:org.apache.camel.model.language.ExpressionDefinition
示例1
@Override
public ExpressionDefinition getExpression() {
final ExpressionSubElementDefinition expression = super.getCorrelationExpression();
return expression != null
? super.getCorrelationExpression().getExpressionType()
: null;
}
示例2
@Override
public Expression createExpression(ExpressionDefinition definition) {
return ExpressionReifier.reifier(this, definition).createExpression();
}
示例3
@Override
public Predicate createPredicate(ExpressionDefinition definition) {
return ExpressionReifier.reifier(this, definition).createPredicate();
}
示例4
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setExpressionType(expressionDefinition);
}
示例5
@Override
public ExpressionDefinition getExpression() {
return super.getExpressionType();
}
示例6
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setExpressionType(expressionDefinition);
}
示例7
@Override
public ExpressionDefinition getExpression() {
return super.getExpressionType();
}
示例8
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setCorrelationExpression(expressionDefinition);
}
示例9
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setExpressionType(expressionDefinition);
}
示例10
@Override
public ExpressionDefinition getExpression() {
return super.getExpressionType();
}
示例11
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setExpressionType(expressionDefinition);
}
示例12
@Override
public ExpressionDefinition getExpression() {
return super.getExpressionType();
}
示例13
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
delegate.setExpression(expressionDefinition);
}
示例14
@Override
public ExpressionDefinition getExpression() {
return delegate.getExpression() != null
? new ExpressionDefinition(delegate.getExpression())
: null;
}
示例15
@JsonIgnore
@Override
public ExpressionDefinition getExpressionType() {
return super.getExpressionType();
}
示例16
@JsonIgnore
@Override
public void setExpressionType(ExpressionDefinition expressionType) {
super.setExpressionType(expressionType);
}
示例17
@Override
public void setExpression(ExpressionDefinition expressionDefinition) {
super.setExpressionType(expressionDefinition);
}
示例18
@Override
public ExpressionDefinition getExpression() {
return super.getExpressionType();
}
示例19
public final TypeSpec generateHasExpression() {
TypeSpec.Builder type = TypeSpec.interfaceBuilder("HasExpression");
type.addModifiers(Modifier.PUBLIC);
type.addMethod(
MethodSpec.methodBuilder("setExpression")
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
.addParameter(ExpressionDefinition.class, "expressionDefinition")
.addAnnotation(
AnnotationSpec.builder(JsonTypeInfo.class)
.addMember("use", "$L", "JsonTypeInfo.Id.NAME")
.addMember("include", "$L", "JsonTypeInfo.As.WRAPPER_OBJECT")
.build())
.build()
);
type.addMethod(
MethodSpec.methodBuilder("getExpression")
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
.returns(ExpressionDefinition.class)
.build()
);
definitions(EXPRESSION_DEFINITION_CLASS).forEach(
(k, v) -> {
String name = k;
name = WordUtils.capitalize(name, '_', '-');
name = StringUtils.remove(name, "_");
name = StringUtils.remove(name, "-");
type.addMethod(MethodSpec.methodBuilder("set" + name)
.addAnnotation(
AnnotationSpec.builder(JsonAlias.class).addMember("value", "$S", k).build())
.addModifiers(Modifier.PUBLIC, Modifier.DEFAULT)
.addParameter(v, "definition")
.addCode(
CodeBlock.builder()
.beginControlFlow("if (getExpression() != null)")
.addStatement("throw new IllegalArgumentException(\"And expression has already been set\")")
.endControlFlow()
.addStatement("setExpression(definition);").build())
.build()
);
}
);
return type.build();
}
示例20
private void expressionOptions(String k, ExpressionDefinition exp, Map<String, String> options) {
// special for aggregate as it has naming clash
if ("completionSizeExpression".equals(k)) {
k = "completionSize";
} else if ("completionTimeoutExpression".equals(k)) {
k = "completionTimeout";
}
String text = exp.getExpression();
String lan = exp.getLanguage();
options.put(k, lan);
if (text != null) {
options.put(k + "_value", text);
}
// when using a language as an expression it can contain additional options which we
// cannot build a nice UI in forge as forge is not that dynamic. So instead we have an extra
// input field where we allow users to edit the values using a Camel multivalue uri style with
// key=value&key2=value2 ...
CollectionStringBuffer csb = new CollectionStringBuffer("&");
String json = getCamelCatalog().languageJSonSchema(lan);
if (json != null) {
List<Map<String, String>> data = JSonSchemaHelper.parseJsonSchema("properties", json, true);
if (data != null) {
for (Map<String, String> map : data) {
String name = map.get("name");
// skip expression/id as we are not interested in those
if (name != null && !"id".equals(name) && !"expression".equals(name)) {
try {
Object value = IntrospectionSupport.getProperty(exp, name);
if (value != null) {
text = value.toString();
csb.append(name + "=" + text);
}
} catch (Exception e) {
// ignore
}
}
}
}
if (!csb.isEmpty()) {
String extra = csb.toString();
options.put(k + "_extra", extra);
}
}
}
示例21
public static String getExpressionOrElse(ExpressionDefinition exp) {
return getExpressionOrElse(exp, "");
}
示例22
public static String getExpressionOrElse(ExpressionDefinition exp, String defaultValue) {
if (exp != null) {
return Strings2.getOrElse(exp.getExpression(), defaultValue).trim();
}
return defaultValue;
}