![JAR search and dependency download from the Maven repository](/logo.png)
org.jvnet.jaxb.annox.parser.XXAnnotationArrayAnnotationFieldParser Maven / Gradle / Ivy
The newest version!
//package org.jvnet.jaxb.annox.parser;
//
//import com.github.javaparser.ast.Node;
//import com.github.javaparser.ast.expr.AnnotationExpr;
//import com.github.javaparser.ast.expr.ArrayInitializerExpr;
//import com.github.javaparser.ast.expr.Expression;
//
//import java.lang.annotation.Annotation;
//import java.text.MessageFormat;
//import java.util.List;
//
//import org.jvnet.jaxb.annox.annotation.NoSuchAnnotationFieldException;
//import visitor.ast.org.jvnet.jaxb.annox.javaparser.AbstractGenericExpressionVisitor;
//import org.jvnet.jaxb.annox.model.XAnnotation;
//import org.jvnet.jaxb.annox.model.annotation.field.XAnnotationField;
//import org.jvnet.jaxb.annox.model.annotation.field.XArrayAnnotationField;
//import org.jvnet.jaxb.annox.model.annotation.value.XAnnotationValue;
//import org.jvnet.jaxb.annox.model.annotation.value.XXAnnotationAnnotationValue;
//import org.jvnet.jaxb.annox.parser.exception.AnnotationElementParseException;
//import org.jvnet.jaxb.annox.parser.exception.AnnotationExpressionParseException;
//import org.jvnet.jaxb.annox.util.AnnotationElementUtils;
//import org.w3c.dom.Element;
//
//public class XXAnnotationArrayAnnotationFieldParser
// extends XAnnotationFieldParser[]> {
//
// @Override
// public XAnnotationField parse(Element annotationElement, String name,
// Class> type) throws AnnotationElementParseException {
//
// final Element[] elements = AnnotationElementUtils.getFieldElements(
// annotationElement, name);
//
// @SuppressWarnings("unchecked")
// final XAnnotation[] xannotations = new XAnnotation[elements.length];
//
// for (int index = 0; index < elements.length; index++) {
// try {
// @SuppressWarnings("unchecked")
// final XAnnotation annotation = (XAnnotation) XAnnotationParser.INSTANCE
// .parse(elements[index]);
// xannotations[index] = annotation;
// } catch (AnnotationElementParseException aepex) {
// throw new AnnotationElementParseException(annotationElement,
// aepex);
// }
// }
// return construct(name, xannotations, type);
// }
//
// public XAnnotationField parse(Annotation annotation, String name,
// Class> type) throws NoSuchAnnotationFieldException {
// final A[] value = getAnnotationFieldValue(annotation, name);
// @SuppressWarnings("unchecked")
// final XAnnotation[] xannotations = new XAnnotation[value.length];
//
// for (int index = 0; index < value.length; index++) {
// @SuppressWarnings("unchecked")
// final XAnnotation xannotation = (XAnnotation) XAnnotationParser.INSTANCE
// .parse(value[index]);
// xannotations[index] = xannotation;
// }
// return construct(name, xannotations, type);
// }
//
// @Override
// public XAnnotationField parse(Expression expression, String name,
// Class> type) throws AnnotationExpressionParseException {
// final Expression[] items = expression.accept(
// new AbstractGenericExpressionVisitor() {
// @Override
// public Expression[] visit(ArrayInitializerExpr n, Void arg) {
// final List values = n.getValues();
// return values.toArray(new Expression[values.size()]);
// }
//
// @Override
// public Expression[] visitDefault(Node n, Void arg) {
// throw new IllegalArgumentException(
// MessageFormat
// .format("Unexpected expression [{0}], only array initializer expressions are expected.",
// n));
// }
// }, null);
//
// @SuppressWarnings("unchecked")
// final XAnnotation[] xannotations = new XAnnotation[items.length];
//
// for (int index = 0; index < items.length; index++) {
//
// final Expression item = items[index];
// final AnnotationExpr annotationExpression = item
// .accept(new AbstractGenericExpressionVisitor() {
// @Override
// public AnnotationExpr visitDefault(Node n, Void arg) {
// throw new IllegalArgumentException(
// MessageFormat
// .format("Unexpected expression [{0}], only annotation expressions are expected.",
// n));
// }
//
// @Override
// public AnnotationExpr visitDefault(AnnotationExpr n,
// Void arg) {
// return n;
// }
// }, null);
//
// @SuppressWarnings("unchecked")
// final XAnnotation annotation = (XAnnotation) XAnnotationParser.INSTANCE
// .parse(annotationExpression);
// xannotations[index] = annotation;
// }
// return construct(name, xannotations, type);
// }
//
// public XAnnotationField construct(String name,
// final XAnnotation[] xannotations, Class> type) {
// @SuppressWarnings("unchecked")
// final XAnnotationValue[] xannotationValues = new XAnnotationValue[xannotations.length];
// for (int index = 0; index < xannotations.length; index++) {
// xannotationValues[index] = new XXAnnotationAnnotationValue(
// xannotations[index]);
// }
// return new XArrayAnnotationField(name, type, xannotationValues);
// }
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy