private Collection<Type> findJsonSubTypes(JClassType clazz) {
if (clazz == null)
return Collections.emptyList();
else if (clazz.isAnnotationPresent(JsonSubTypes.class)) {
JsonSubTypes annotation = getAnnotation(clazz, JsonSubTypes.class);
Set<Type> result = new HashSet<JsonSubTypes.Type>();
Type[] value = annotation.value();
for (Type type : value) {
result.add(type);
Class<?> subclazz = type.value();
String newSubClassName = subclazz.getName().replaceAll("\\$", ".");
JClassType subJClazz = context.getTypeOracle().findType(newSubClassName);