本文整理汇总了Java中org.graylog.plugins.pipelineprocessor.ast.expressions.Expression类的典型用法代码示例。如果您正苦于以下问题:Java Expression类的具体用法?Java Expression怎么用?Java Expression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Expression类属于org.graylog.plugins.pipelineprocessor.ast.expressions包,在下文中一共展示了Expression类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: exitIdentifier
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitIdentifier(RuleLangParser.IdentifierContext ctx) {
// unquote identifier if necessary
final String identifierName = unquote(ctx.Identifier().getText(), '`');
if (!isIdIsFieldAccess.peek() && !definedVars.contains(identifierName)) {
parseContext.addError(new UndeclaredVariable(ctx));
}
final Expression expr;
String type;
// if the identifier is also a declared variable name prefer the variable
if (isIdIsFieldAccess.peek() && !definedVars.contains(identifierName)) {
expr = new FieldRefExpression(ctx.getStart(), identifierName, parseContext.getDefinedVar(identifierName));
type = "FIELDREF";
} else {
expr = new VarRefExpression(ctx.getStart(), identifierName, parseContext.getDefinedVar(identifierName));
type = "VARREF";
}
log.trace("{}: ctx {} => {}", type, ctx, expr);
exprs.put(ctx, expr);
}
示例2: triggerAbstractEnter
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
private void triggerAbstractEnter(RuleAstListener listener, Expression expr) {
if (expr instanceof BinaryExpression) {
listener.enterBinary((BinaryExpression) expr);
} else if (expr instanceof UnaryExpression) { // must not be first in "else if" because "binary is instanceof unary"
listener.enterUnary((UnaryExpression) expr);
}
// for the others we trigger regardless whether it's a binary or unary expr
if (expr instanceof LogicalExpression) {
listener.enterLogical((LogicalExpression) expr);
}
if (expr instanceof NumericExpression) {
listener.enterNumeric((NumericExpression) expr);
}
if (expr instanceof ConstantExpression) {
listener.enterConstant((ConstantExpression) expr);
}
}
示例3: triggerAbstractExit
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
private void triggerAbstractExit(RuleAstListener listener, Expression expr) {
if (expr instanceof BinaryExpression) {
listener.exitBinary((BinaryExpression) expr);
} else if (expr instanceof UnaryExpression) { // must not be first in "else if" because "binary is instanceof unary"
listener.exitUnary((UnaryExpression) expr);
}
// for the others we trigger regardless whether it's a binary or unary expr
if (expr instanceof LogicalExpression) {
listener.exitLogical((LogicalExpression) expr);
}
if (expr instanceof NumericExpression) {
listener.exitNumeric((NumericExpression) expr);
}
if (expr instanceof ConstantExpression) {
listener.exitConstant((ConstantExpression) expr);
}
}
示例4: preprocessArgs
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
default void preprocessArgs(FunctionArgs args) {
for (Map.Entry<String, Expression> e : args.getConstantArgs().entrySet()) {
final String name = e.getKey();
try {
final Object value = preComputeConstantArgument(args, name, e.getValue());
if (value != null) {
//noinspection unchecked
final ParameterDescriptor<Object, Object> param = (ParameterDescriptor<Object, Object>) args.param(name);
if (param == null) {
throw new IllegalStateException("Unknown parameter " + name + "! Cannot continue.");
}
args.setPreComputedValue(name, param.transform().apply(value));
}
} catch (Exception exception) {
log.debug("Unable to precompute argument value for " + name, exception);
throw new PrecomputeFailure(name, exception);
}
}
}
示例5: evaluate_returns_result_for_valid_CEF_string
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Test
public void evaluate_returns_result_for_valid_CEF_string() throws Exception {
final Map<String, Expression> arguments = ImmutableMap.of(
CEFParserFunction.VALUE, new StringExpression(new CommonToken(0), "CEF:0|vendor|product|1.0|id|name|low|dvc=example.com msg=Foobar"),
CEFParserFunction.USE_FULL_NAMES, new BooleanExpression(new CommonToken(0), false)
);
final FunctionArgs functionArgs = new FunctionArgs(function, arguments);
final Message message = new Message("__dummy", "__dummy", DateTime.parse("2010-07-30T16:03:25Z"));
final EvaluationContext evaluationContext = new EvaluationContext(message);
final CEFParserResult result = function.evaluate(functionArgs, evaluationContext);
assertNotNull(result);
assertEquals(0, result.get("cef_version"));
assertEquals("vendor", result.get("device_vendor"));
assertEquals("product", result.get("device_product"));
assertEquals("1.0", result.get("device_version"));
assertEquals("id", result.get("device_event_class_id"));
assertEquals("low", result.get("severity"));
assertEquals("example.com", result.get("dvc"));
assertEquals("Foobar", result.get("msg"));
}
示例6: evaluate_returns_result_for_valid_CEF_string_with_short_names_if_useFullNames_parameter_is_missing
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Test
public void evaluate_returns_result_for_valid_CEF_string_with_short_names_if_useFullNames_parameter_is_missing() throws Exception {
final Map<String, Expression> arguments = Collections.singletonMap(
CEFParserFunction.VALUE, new StringExpression(new CommonToken(0), "CEF:0|vendor|product|1.0|id|name|low|dvc=example.com msg=Foobar")
);
final FunctionArgs functionArgs = new FunctionArgs(function, arguments);
final Message message = new Message("__dummy", "__dummy", DateTime.parse("2010-07-30T16:03:25Z"));
final EvaluationContext evaluationContext = new EvaluationContext(message);
final CEFParserResult result = function.evaluate(functionArgs, evaluationContext);
assertNotNull(result);
assertEquals(0, result.get("cef_version"));
assertEquals("vendor", result.get("device_vendor"));
assertEquals("product", result.get("device_product"));
assertEquals("1.0", result.get("device_version"));
assertEquals("id", result.get("device_event_class_id"));
assertEquals("low", result.get("severity"));
assertEquals("example.com", result.get("dvc"));
assertEquals("Foobar", result.get("msg"));
}
示例7: evaluate_returns_result_for_valid_CEF_string_with_full_names
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Test
public void evaluate_returns_result_for_valid_CEF_string_with_full_names() throws Exception {
final CEFParserFunction function = new CEFParserFunction(new MetricRegistry());
final Map<String, Expression> arguments = ImmutableMap.of(
CEFParserFunction.VALUE, new StringExpression(new CommonToken(0), "CEF:0|vendor|product|1.0|id|name|low|dvc=example.com msg=Foobar"),
CEFParserFunction.USE_FULL_NAMES, new BooleanExpression(new CommonToken(0), true)
);
final FunctionArgs functionArgs = new FunctionArgs(function, arguments);
final Message message = new Message("__dummy", "__dummy", DateTime.parse("2010-07-30T16:03:25Z"));
final EvaluationContext evaluationContext = new EvaluationContext(message);
final CEFParserResult result = function.evaluate(functionArgs, evaluationContext);
assertNotNull(result);
assertEquals(0, result.get("cef_version"));
assertEquals("vendor", result.get("device_vendor"));
assertEquals("product", result.get("device_product"));
assertEquals("1.0", result.get("device_version"));
assertEquals("id", result.get("device_event_class_id"));
assertEquals("low", result.get("severity"));
assertEquals("example.com", result.get("deviceAddress"));
assertEquals("Foobar", result.get("message"));
}
示例8: evaluate_returns_result_without_message_field
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Test
public void evaluate_returns_result_without_message_field() throws Exception {
final Map<String, Expression> arguments = ImmutableMap.of(
CEFParserFunction.VALUE, new StringExpression(new CommonToken(0), "CEF:0|vendor|product|1.0|id|name|low|dvc=example.com"),
CEFParserFunction.USE_FULL_NAMES, new BooleanExpression(new CommonToken(0), false)
);
final FunctionArgs functionArgs = new FunctionArgs(function, arguments);
final Message message = new Message("__dummy", "__dummy", DateTime.parse("2010-07-30T16:03:25Z"));
final EvaluationContext evaluationContext = new EvaluationContext(message);
final CEFParserResult result = function.evaluate(functionArgs, evaluationContext);
assertNotNull(result);
assertEquals(0, result.get("cef_version"));
assertEquals("vendor", result.get("device_vendor"));
assertEquals("product", result.get("device_product"));
assertEquals("1.0", result.get("device_version"));
assertEquals("id", result.get("device_event_class_id"));
assertEquals("low", result.get("severity"));
assertEquals("example.com", result.get("dvc"));
assertFalse(result.containsKey("message"));
}
示例9: exitVarAssignStmt
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitVarAssignStmt(RuleLangParser.VarAssignStmtContext ctx) {
final String name = unquote(ctx.varName.getText(), '`');
final Expression expr = exprs.get(ctx.expression());
parseContext.defineVar(name, expr);
definedVars.add(name);
parseContext.statements.add(new VarAssignStatement(name, expr));
}
示例10: exitNamedArgs
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitNamedArgs(RuleLangParser.NamedArgsContext ctx) {
final Map<String, Expression> argMap = Maps.newHashMap();
for (RuleLangParser.PropAssignmentContext propAssignmentContext : ctx.propAssignment()) {
final String argName = unquote(propAssignmentContext.Identifier().getText(), '`');
final Expression argValue = exprs.get(propAssignmentContext.expression());
argMap.put(argName, argValue);
}
args.put(ctx, argMap);
}
示例11: exitNested
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitNested(RuleLangParser.NestedContext ctx) {
isIdIsFieldAccess.pop(); // reset for error checks
final Expression object = exprs.get(ctx.fieldSet);
final Expression field = exprs.get(ctx.field);
final FieldAccessExpression expr = new FieldAccessExpression(ctx.getStart(), object, field);
log.trace("FIELDACCESS: ctx {} => {}", ctx, expr);
exprs.put(ctx, expr);
}
示例12: exitNot
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitNot(RuleLangParser.NotContext ctx) {
final Expression expression = upgradeBoolFunctionExpression(ctx.expression());
final NotExpression expr = new NotExpression(ctx.getStart(), expression);
log.trace("NOT: ctx {} => {}", ctx, expr);
exprs.put(ctx, expr);
}
示例13: exitAnd
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitAnd(RuleLangParser.AndContext ctx) {
// if the expressions are function calls but boolean valued, upgrade them,
// we allow testing boolean valued functions without explicit comparison operator
final Expression left = upgradeBoolFunctionExpression(ctx.left);
final Expression right = upgradeBoolFunctionExpression(ctx.right);
final AndExpression expr = new AndExpression(ctx.getStart(), left, right);
log.trace("AND: ctx {} => {}", ctx, expr);
exprs.put(ctx, expr);
}
示例14: upgradeBoolFunctionExpression
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
private Expression upgradeBoolFunctionExpression(RuleLangParser.ExpressionContext leftExprContext) {
Expression leftExpr = exprs.get(leftExprContext);
if (leftExpr instanceof FunctionExpression && leftExpr.getType().equals(Boolean.class)) {
leftExpr = new BooleanValuedFunctionWrapper(leftExprContext.getStart(), leftExpr);
}
return leftExpr;
}
示例15: exitOr
import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; //导入依赖的package包/类
@Override
public void exitOr(RuleLangParser.OrContext ctx) {
final Expression left = upgradeBoolFunctionExpression(ctx.left);
final Expression right = upgradeBoolFunctionExpression(ctx.right);
final OrExpression expr = new OrExpression(ctx.getStart(), left, right);
log.trace("OR: ctx {} => {}", ctx, expr);
exprs.put(ctx, expr);
}