use of com.github.javaparser.ast.expr.ClassExpr in project checker-framework by typetools.
the class StubParser method getValueOfExpressionInAnnotation.
/**
* Returns the value of {@code expr}, or null if some problem occurred getting the value.
*/
private Object getValueOfExpressionInAnnotation(String name, Expression expr, TypeKind valueKind) {
if (expr instanceof FieldAccessExpr || expr instanceof NameExpr) {
VariableElement elem;
if (expr instanceof NameExpr) {
elem = findVariableElement((NameExpr) expr);
} else {
elem = findVariableElement((FieldAccessExpr) expr);
}
if (elem == null) {
stubWarn("Field not found: " + expr);
return null;
}
Object value = elem.getConstantValue() != null ? elem.getConstantValue() : elem;
if (value instanceof Number) {
return convert((Number) value, valueKind);
} else {
return value;
}
} else if (expr instanceof StringLiteralExpr) {
return ((StringLiteralExpr) expr).asString();
} else if (expr instanceof BooleanLiteralExpr) {
return ((BooleanLiteralExpr) expr).getValue();
} else if (expr instanceof CharLiteralExpr) {
return convert((int) ((CharLiteralExpr) expr).asChar(), valueKind);
} else if (expr instanceof DoubleLiteralExpr) {
// double, too.
return ((DoubleLiteralExpr) expr).asDouble();
} else if (expr instanceof IntegerLiteralExpr) {
return convert(((IntegerLiteralExpr) expr).asInt(), valueKind);
} else if (expr instanceof LongLiteralExpr) {
return convert(((LongLiteralExpr) expr).asLong(), valueKind);
} else if (expr instanceof ClassExpr) {
ClassExpr classExpr = (ClassExpr) expr;
String className = classExpr.getType().toString();
if (importedTypes.containsKey(className)) {
return importedTypes.get(className).asType();
}
TypeElement typeElement = findTypeOfName(className);
if (typeElement == null) {
stubWarn("StubParser: unknown class name " + className);
return null;
}
return typeElement.asType();
} else if (expr instanceof NullLiteralExpr) {
stubWarn("Null found as value for %s. Null isn't allowed as an annotation value", name);
return null;
} else {
stubWarn("Unexpected annotation expression: " + expr);
return null;
}
}
use of com.github.javaparser.ast.expr.ClassExpr in project javaparser by javaparser.
the class PrettyPrintVisitorTest method printGenericClassExpr.
@Test
public void printGenericClassExpr() {
ClassExpr expr = JavaParser.parseExpression("Foo<String>.class");
assertEquals("Foo<String>.class", print(expr));
}
use of com.github.javaparser.ast.expr.ClassExpr in project javaparser by javaparser.
the class ConcreteSyntaxModelTest method printArrayClassExpr.
@Test
public void printArrayClassExpr() {
ClassExpr expr = JavaParser.parseExpression("Foo[].class");
assertEquals("Foo[].class", print(expr));
}
use of com.github.javaparser.ast.expr.ClassExpr in project javaparser by javaparser.
the class ConcreteSyntaxModelTest method printGenericClassExpr.
@Test
public void printGenericClassExpr() {
ClassExpr expr = JavaParser.parseExpression("Foo<String>.class");
assertEquals("Foo<String>.class", print(expr));
}
use of com.github.javaparser.ast.expr.ClassExpr in project javaparser by javaparser.
the class ConcreteSyntaxModelTest method printSimpleClassExpr.
@Test
public void printSimpleClassExpr() {
ClassExpr expr = JavaParser.parseExpression("Foo.class");
assertEquals("Foo.class", print(expr));
}
Aggregations