@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
static List<Class<?>> subtypes(Class<?> crdClass) { JsonSubTypes subtypes = crdClass.getAnnotation(JsonSubTypes.class); if (subtypes != null) { ArrayList<Class<?>> result = new ArrayList<>(subtypes.value().length); for (JsonSubTypes.Type type : subtypes.value()) { result.add(type.value()); } return result; } else { return emptyList(); } }
static List<String> subtypeNames(Class<?> crdClass) { JsonSubTypes subtypes = crdClass.getAnnotation(JsonSubTypes.class); if (subtypes != null) { ArrayList<String> result = new ArrayList<>(subtypes.value().length); for (JsonSubTypes.Type type : subtypes.value()) { result.add(type.name()); } return result; } else { return emptyList(); } }
static Map<Class<?>, String> subtypeMap(Class<?> crdClass) { JsonSubTypes subtypes = crdClass.getAnnotation(JsonSubTypes.class); if (subtypes != null) { LinkedHashMap<Class<?>, String> result = new LinkedHashMap<>(subtypes.value().length); for (JsonSubTypes.Type type : subtypes.value()) { result.put(type.value(), type.name()); } return result; } else { return emptyMap(); } }
private static JsonSubTypes.Type getJsonSubTypeForClass(JsonSubTypes types, Class<?> cls) { for (JsonSubTypes.Type type : types.value()) { if (type.value().equals(cls)) { return type; } } return null; }
public boolean isHasSubTypes() { JsonSubTypes subtypes = getAnnotation(JsonSubTypes.class); return subtypes != null && subtypes.value().length > 0; }
public boolean isHasSubTypes() { JsonSubTypes subtypes = getAnnotation(JsonSubTypes.class); return subtypes != null && subtypes.value().length > 0; }
@Nonnull @Override public Result<Map<TypeDescriptor, String>> subclasses(TypeDescriptor type) { JsonSubTypes jsonSubType = type.getAnnotation(JsonSubTypes.class); if (jsonSubType != null && jsonSubType.value().length > 0) { TypeDescriptors typeDescriptors = type.getTypeDescriptors(); Map<TypeDescriptor, String> aliasesByTypes = asList(jsonSubType.value()).stream() .collect(toMap(subType -> typeDescriptors.get(subType.value()), Type::name)); return Result.of(aliasesByTypes); } return Result.notFound(); }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = a.getAnnotation(JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = a.getAnnotation(JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
private static JsonSubTypes.Type findTypeOnSubTypes( JClassType subtype, Optional<JsonSubTypes> jsonSubTypes ) { if ( jsonSubTypes.isPresent() ) { for ( JsonSubTypes.Type type : jsonSubTypes.get().value() ) { if ( type.value().getName().equals( subtype.getQualifiedBinaryName() ) ) { return type; } } } return null; }
private Collection<Type> findJsonSubTypes(JClassType clazz, Set<Type> types) { if (clazz == null) { return Collections.emptyList(); } JsonSubTypes annotation = getClassAnnotation(clazz, JsonSubTypes.class); if (annotation == null) { return Collections.emptyList(); } for (Type type : annotation.value()) { if (types.add(type)) { Class<?> subclazz = type.value(); String newSubClassName = subclazz.getName().replaceAll("\\$", "."); JClassType subJClazz = context.getTypeOracle().findType(newSubClassName); findJsonSubTypes(subJClazz, types); } } return types; }
@Override public void injectFields(final TypescriptInterface iface, final Class<?> javaClass) { final JsonTypeInfo typeInfoAnnotation = javaClass.getSuperclass().getAnnotation(JsonTypeInfo.class); final JsonSubTypes subTypesAnnotation = javaClass.getSuperclass().getAnnotation(JsonSubTypes.class); for (JsonSubTypes.Type subType : subTypesAnnotation.value()) { if (subType.value().equals(javaClass)) { final TypescriptField field = new TypescriptField(typeInfoAnnotation.property(), new TypescriptStringConstantType(subType.name()), TypescriptField.MANDATORY); iface.field(field); } } }
@Override public TypescriptField mapFieldInternal(Field field) { if (!supports(field)) { return null; } final JsonSubTypes subTypesAnnotation = field.getDeclaringClass().getAnnotation(JsonSubTypes.class); final TypescriptUnionType fieldType = new TypescriptUnionType(); for (JsonSubTypes.Type subType : subTypesAnnotation.value()) { fieldType.type(new TypescriptStringConstantType(subType.name())); } return new TypescriptField(field.getName(), fieldType); }
private List<Subtype> getPossibleTypes(JsonTypeInfo typeInfo, boolean isLeaf) throws UnableToCompleteException { if (typeInfo == null) { return Lists.newArrayList(new Subtype(null, source)); } Collection<Type> subTypes = findJsonSubTypes(source); if (subTypes.isEmpty()) { JsonSubTypes foundAnnotation = getAnnotation(source, JsonSubTypes.class); if (foundAnnotation != null) { Type[] value = foundAnnotation.value(); subTypes = Arrays.asList(value); } } PossibleTypesVisitor v = new PossibleTypesVisitor(context, source, isLeaf, getLogger(), subTypes); return v.visit(typeInfo.use()); }
private List<Subtype> getPossibleTypes(JsonTypeInfo typeInfo, boolean isLeaf) throws UnableToCompleteException { if (typeInfo == null) { return Lists.newArrayList(new Subtype(null, source)); } Collection<Type> subTypes = findJsonSubTypes(source); if (subTypes.isEmpty()) { JsonSubTypes foundAnnotation = getAnnotation(source, JsonSubTypes.class); if (foundAnnotation != null) { Type[] value = foundAnnotation.value(); subTypes = Arrays.asList(value); } } PossibleTypesVisitor v = new PossibleTypesVisitor(context, source, isLeaf, getLogger(), subTypes); return v.visit(typeInfo.use()); }