public Optional<List<AnnotationInfo>> getAnnotationArray(String name) { return AnnotationValueKind.ARRAY_ANNOTATION.getIfPresent(nameMap, name); }
public <T> Optional<T> getIfPresent(Map<String, AnnotationValueInfo> nameMap, String name) { if (!nameMap.containsKey(name)) { return Optional.absent(); } AnnotationValueInfo value = nameMap.get(name); AnnotationValueKind kind = value.kind(); if (!kind.equals(this)) { throw new ClassCastException(kind + " cannot be cast to " + this); } @SuppressWarnings("unchecked") T object = (T) value.value(); return Optional.of(object); }
@Override public AnnotationValueInfo visitArray(List<? extends AnnotationValue> list, String p) { List<Object> valueInfoList = list.stream() .map(this) .map(AnnotationValueInfo::value) .collect(Collectors.toList()); if (kind == null) { TypeMirror returnType = element.getReturnType(); kind = returnType.accept(new ArrayVisitor(), AnnotationValueKind.ARRAY_TYPE); } return AptAnnotationValueInfo.of(p, kind.toArray(), valueInfoList); }
public boolean booleanValue() { Preconditions.checkArgument(AnnotationValueKind.PRIMITIVE_BOOLEAN.equals(kind())); return ((Boolean) value()).booleanValue(); }
@Override public AnnotationValueInfo visitArray(List<? extends AnnotationValue> list, String p) { List<Object> valueInfoList = WayIterables.from(list) .transform(this) .transform(AnnotationValueInfoValue.get()) .toImmutableList(); if (kind == null) { TypeMirror returnType = element.getReturnType(); kind = returnType.accept(new ArrayVisitor(), AnnotationValueKind.ARRAY_TYPE); } return AnnotationValueInfo.builder() .name(p) .kind(kind.toArray()) .value(valueInfoList) .build(); }
public int intValue() { Preconditions.checkArgument(AnnotationValueKind.PRIMITIVE_INT.equals(kind())); return ((Integer) value()).intValue(); }
public Optional<List<EnumConstantInfo>> getEnumArray(String name) { return AnnotationValueKind.ARRAY_ENUM.getIfPresent(nameMap, name); }
public char charValue() { Preconditions.checkArgument(AnnotationValueKind.PRIMITIVE_CHAR.equals(kind())); return ((Character) value()).charValue(); }
public Optional<List<SimpleTypeInfo>> getTypeArray(String name) { return AnnotationValueKind.ARRAY_TYPE.getIfPresent(nameMap, name); }
public SimpleTypeInfo simpleTypeInfoValue() { Preconditions.checkArgument(AnnotationValueKind.TYPE.equals(kind())); return (SimpleTypeInfo) value(); }
public String getStringValue() { Preconditions.checkArgument(AnnotationValueKind.STRING.equals(kind())); return (String) value(); }
public <E extends Enum<E>> E getEnumValue(Class<E> enumType) { Preconditions.checkArgument(AnnotationValueKind.ENUM.equals(kind())); EnumConstantInfo value = (EnumConstantInfo) value(); return value.getEnumValue(enumType); }
@Override public final boolean equals(final Object obj) { if (obj == this) { return true; } if (obj instanceof AnnotationValueInfo) { final AnnotationValueInfo that = (AnnotationValueInfo) obj; return name().equals(that.name()) && kind().equals(that.kind()) && value().equals(that.value()); } else { return false; } }