package org.jboss.windup.rules.apps.java.scan.ast.annotations;
import java.util.Map;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import org.jboss.windup.graph.MapInAdjacentVertices;
import org.jboss.windup.rules.apps.java.scan.ast.JavaTypeReferenceModel;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
/**
* Contains metadata related to Java annotations (eg, attribute values).
*/
@TypeValue(JavaAnnotationTypeReferenceModel.TYPE)
public interface JavaAnnotationTypeReferenceModel extends JavaTypeReferenceModel, JavaAnnotationTypeValueModel
{
String ANNOTATION_VALUE_MAP = "annotationValueMap";
String TYPE = "JavaAnnotationTypeReference";
String ORIGINAL_ANNOTATED_TYPE = "originalAnnotatedType";
/**
* Contains the type that this annotation was placed on.
*/
@Adjacency(label = ORIGINAL_ANNOTATED_TYPE, direction = Direction.OUT)
JavaTypeReferenceModel getAnnotatedType();
/**
* Contains the type that this annotation was placed on.
*/
@Adjacency(label = ORIGINAL_ANNOTATED_TYPE, direction = Direction.OUT)
void setAnnotatedType(JavaTypeReferenceModel annotatedType);
/**
* Contains the values of attributes specified within the annotation.
*/
@MapInAdjacentVertices(label = ANNOTATION_VALUE_MAP)
void setAnnotationValues(Map<String, JavaAnnotationTypeValueModel> values);
/**
* Contains the values of attributes specified within the annotation.
*/
@MapInAdjacentVertices(label = ANNOTATION_VALUE_MAP)
Map<String, JavaAnnotationTypeValueModel> getAnnotationValues();
}