package org.jboss.windup.config.operation.iteration; import org.jboss.windup.config.GraphRewrite; import org.jboss.windup.config.Variables; import org.jboss.windup.config.selectors.FramesSelector; import org.jboss.windup.graph.model.WindupVertexFrame; import org.ocpsoft.rewrite.context.EvaluationContext; /** * Selection of frames having all variables of the given type (regardless of the variable name). * * @author <a href="mailto:mbriskar@gmail.com">Matej Briskar</a> * */ public class TypedFramesSelector implements FramesSelector { private final Class<? extends WindupVertexFrame> framesModel; public TypedFramesSelector(Class<? extends WindupVertexFrame> framesModel) { this.framesModel = framesModel; } @Override public Iterable<? extends WindupVertexFrame> getFrames(GraphRewrite event, EvaluationContext context) { final Iterable<? extends WindupVertexFrame> frames = Variables.instance(event).findVariableOfType(framesModel); return frames; } }