package org.jboss.windup.rules.apps.java.model;
import org.jboss.windup.graph.model.WindupVertexFrame;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
/**
* Contains information regarding parameters to a Java Method.
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
@TypeValue(JavaParameterModel.TYPE)
public interface JavaParameterModel extends WindupVertexFrame
{
public static final String METHOD_PARAMETER_TYPE = "methodParameterType";
public static final String PARAMETER_POSITION = "parameterPosition";
public static final String TYPE = "JavaParameter";
/**
* The {@link JavaMethodModel} containing this parameter.
*/
@Adjacency(label = JavaMethodModel.METHOD_PARAMETER, direction = Direction.IN)
public JavaMethodModel getJavaMethod();
/**
* The {@link JavaMethodModel} containing this parameter.
*/
@Adjacency(label = JavaMethodModel.METHOD_PARAMETER, direction = Direction.IN)
public void setJavaMethod(JavaMethodModel method);
/**
* Contains the parameter's position within the parameter list (0-based index)
*/
@Property(PARAMETER_POSITION)
public int getPosition();
/**
* Contains the parameter's position within the parameter list (0-based index)
*/
@Property(PARAMETER_POSITION)
public void setPosition(int parameterPosition);
/**
* Contains the parameter type
*/
@Adjacency(label = METHOD_PARAMETER_TYPE, direction = Direction.OUT)
public JavaClassModel getJavaType();
/**
* Contains the parameter type
*/
@Adjacency(label = METHOD_PARAMETER_TYPE, direction = Direction.OUT)
public void setJavaType(JavaClassModel clz);
}