interactivespaces.expression.OgnlFilterExpression.java Source code

Java tutorial

Introduction

Here is the source code for interactivespaces.expression.OgnlFilterExpression.java

Source

/*
 * Copyright (C) 2012 Google Inc.
 *
 * 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 interactivespaces.expression;

import interactivespaces.InteractiveSpacesException;

import org.apache.commons.ognl.Ognl;
import org.apache.commons.ognl.OgnlContext;
import org.apache.commons.ognl.OgnlException;

/**
 * A {@link FilterExpression} which uses OGNL.
 *
 * @author Keith M. Hughes
 */
public class OgnlFilterExpression implements FilterExpression {

    /**
     * The OGNL context for this expression.
     */
    private OgnlContext context;

    /**
     * The expression being evaluated.
     */
    private String expression;

    public OgnlFilterExpression(OgnlContext context, String expression) {
        this.context = context;
        this.expression = expression;
    }

    @Override
    public boolean accept(Object object) {
        try {
            Boolean value = Ognl.getValue(expression, context, object);
            return Boolean.TRUE.equals(value);
        } catch (OgnlException e) {
            throw new InteractiveSpacesException(String.format("Could not evaluate expression %s", expression), e);
        }
    }
}