All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.devonfw.cobigen.api.extension.MatcherInterpreter Maven / Gradle / Ivy

There is a newer version: 2021.12.006
Show newest version
package com.devonfw.cobigen.api.extension;

import java.util.List;
import java.util.Map;

import com.devonfw.cobigen.api.annotation.ExceptionFacade;
import com.devonfw.cobigen.api.exception.InvalidConfigurationException;
import com.devonfw.cobigen.api.to.MatcherTo;
import com.devonfw.cobigen.api.to.VariableAssignmentTo;

/**
 * This interface should be implemented for providing a new input matcher. Input matcher are defined as part
 * of a trigger and provide the ability to restrict specific inputs to a set of templates. Furthermore,
 * matchers may provide several variable assignments, which might be dependent on any information of the
 * matched input and thus should be resolvable by the defining matcher.
 */
@ExceptionFacade
public interface MatcherInterpreter {

    /**
     * This function should check, whether the given matcher matches the attached input
     * @param matcher
     *            specifying the matcher type, the value to match against, and the object to be matched
     * @return true if the object matches the given parameters, 
* false otherwise (not null) */ public boolean matches(MatcherTo matcher); /** * This function should resolve all given variable assignments with respect to the given matcher and * return a variable, value mapping. * @param matcher * the parent matcher of the given variable assignments * @param variableAssignments * the variable assignments which should be resolved * @return resolved variable, value mapping (not null) * @throws InvalidConfigurationException * if one of the requested variable assignment types could not be managed by this * {@link MatcherInterpreter} instance */ public Map resolveVariables(MatcherTo matcher, List variableAssignments) throws InvalidConfigurationException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy