/* 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.flowable.cmmn.engine.impl.el;

import java.lang.reflect.Method;

import org.flowable.cmmn.api.runtime.PlanItemInstance;
import org.flowable.common.engine.impl.el.AbstractFlowableFunctionDelegate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author Joram Barrez
 */
public class VariableEqualsFunctionDelegate extends AbstractFlowableFunctionDelegate {
    
    private static final Logger LOGGER = LoggerFactory.getLogger(VariableEqualsFunctionDelegate.class);
    
    private static Method METHOD;
    
    static {
        try {
            METHOD = ElVariablesUtil.class.getDeclaredMethod("equals", PlanItemInstance.class, Object.class, Object.class);
        } catch (Exception e) {
            LOGGER.error("Can't find correct equals method on " + ElVariablesUtil.class, e);
        }
    }

    @Override
    public String prefix() {
        return "variables";
    }

    @Override
    public String localName() {
        return "equals";
    }
    
    @Override
    public Class<?> functionClass() {
        return ElVariablesUtil.class;
    }

    @Override
    public Method functionMethod() {
        return METHOD;
    }

}

/* 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.flowable.cmmn.engine.impl.el;

import java.lang.reflect.Method;

import org.flowable.cmmn.api.runtime.PlanItemInstance;
import org.flowable.common.engine.api.delegate.FlowableFunctionDelegate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author Joram Barrez
 */
public class VariableEqualsFunctionDelegate implements FlowableFunctionDelegate {
    
    private static final Logger LOGGER = LoggerFactory.getLogger(VariableEqualsFunctionDelegate.class);
    
    private static Method METHOD;
    
    static {
        try {
            METHOD = ElVariablesUtil.class.getDeclaredMethod("equals", PlanItemInstance.class, Object.class, Object.class);
        } catch (Exception e) {
            LOGGER.error("Can't find correct equals method on " + ElVariablesUtil.class, e);
        }
    }

    @Override
    public String prefix() {
        return "variables";
    }

    @Override
    public String localName() {
        return "equals";
    }
    
    @Override
    public Method functionMethod() {
        return METHOD;
    }

}

switch to interface instead of abstract parent class