/**
* Modified by @lmcgrath (https://github.com/qmx/jitescript/pull/13).
*/
package me.qmx.jitescript;
import java.util.ArrayList;
import java.util.List;
import org.objectweb.asm.tree.AnnotationNode;
import org.objectweb.asm.tree.FieldNode;
public class FieldDefinition {
private final String fieldName;
private final int modifiers;
private final String signature;
private final Object value;
private final List<AnnotationData> annotations;
public FieldDefinition(String fieldName, int modifiers, String signature, Object value) {
this.fieldName = fieldName;
this.modifiers = modifiers;
this.signature = signature;
this.value = value;
this.annotations = new ArrayList<AnnotationData>();
}
public FieldNode getFieldNode() {
FieldNode node = new FieldNode(modifiers, fieldName, signature, null, value);
node.visibleAnnotations = new ArrayList<AnnotationNode>();
for (AnnotationData annotation : annotations) {
node.visibleAnnotations.add(annotation.getNode());
}
return node;
}
public FieldDefinition addAnnotation(AnnotationData annotation) {
annotations.add(annotation);
return this;
}
}