public static Class<?>[] getResolvedMethodReturnTypeArguments(Class<?> clazz, String methodName, Class<?>... parameterTypes) { return getResolvedMethodReturnTypeArguments(clazz, getMethod(clazz, methodName, parameterTypes)); }
@Override protected Class<?>[] getTypeArguments() { return ReflectionUtils.getResolvedMethodReturnTypeArguments(getDeclaringType().getJavaType(), getJavaMethod()); }
private String getGenericSignature(MethodAttribute<?, ?> attribute, CtField attributeField) throws NotFoundException { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(attribute.getDeclaringType().getJavaType(), attribute.getJavaMethod()); if (typeArguments.length == 0) { return null; } StringBuilder sb = new StringBuilder(typeArguments.length * 10); String simpleType = Descriptor.of(attributeField.getType()); sb.append(simpleType, 0, simpleType.length() - 1); sb.append('<'); for (int i = 0; i < typeArguments.length; i++) { if (typeArguments[i] == null) { throw new IllegalArgumentException("The type argument can not be resolved at index '" + i + "' for the attribute '" + attribute.getName() + "' of the class '" + attribute.getDeclaringType().getJavaType().getName() + "'!"); } sb.append(Descriptor.of(typeArguments[i].getName())); } sb.append('>'); sb.append(';'); return sb.toString(); } }
private static Class<?> findEntityViewClass(Class<?> repositoryClass, Method methodToAnalyze, EntityViewManager evm) { Class<?> entityViewClass; Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(repositoryClass, methodToAnalyze); if (typeArguments.length == 0) { entityViewClass = ReflectionUtils.getResolvedMethodReturnType(repositoryClass, methodToAnalyze); } else { entityViewClass = typeArguments[typeArguments.length - 1]; } ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(entityViewClass); if (managedViewType == null) { return null; } return managedViewType.getJavaType(); }
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
private static Class<?> findEntityViewClass(Class<?> repositoryClass, Method methodToAnalyze, EntityViewManager evm) { Class<?> entityViewClass; Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(repositoryClass, methodToAnalyze); if (typeArguments.length == 0) { entityViewClass = ReflectionUtils.getResolvedMethodReturnType(repositoryClass, methodToAnalyze); } else { entityViewClass = typeArguments[typeArguments.length - 1]; } ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(entityViewClass); if (managedViewType == null) { return null; } return managedViewType.getJavaType(); }
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method);
Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method);
public static Class<?> extractEntityViewClass(EntityViewRepositoryComponent repo, Method method, EntityViewManager evm) { Class<?> returnType = ReflectionUtils.getResolvedMethodReturnType(repo.getRepositoryClass(), method); ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(returnType); if (managedViewType != null) { return managedViewType.getJavaType(); } else if (returnType.getTypeParameters().length > 0) { Class<?> firstReturnTypeArgument = ReflectionUtils.getResolvedMethodReturnTypeArguments(repo.getRepositoryClass(), method)[0]; managedViewType = evm.getMetamodel().managedView(firstReturnTypeArgument); if (managedViewType != null) { return managedViewType.getJavaType(); } } return null; }
public static Class<?> extractEntityViewClass(EntityViewAwareRepositoryMetadata repo, Method method, EntityViewManager evm) { Class<?> returnType = ReflectionUtils.getResolvedMethodReturnType(repo.getRepositoryClass(), method); ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(returnType); if (managedViewType != null) { return managedViewType.getJavaType(); } else if (returnType.getTypeParameters().length > 0) { Class<?> firstReturnTypeArgument = ReflectionUtils.getResolvedMethodReturnTypeArguments(repo.getRepositoryClass(), method)[0]; managedViewType = evm.getMetamodel().managedView(firstReturnTypeArgument); if (managedViewType != null) { return managedViewType.getJavaType(); } } return null; }
public static Class<?> extractEntityViewClass(EntityViewAwareRepositoryMetadata repo, Method method, EntityViewManager evm) { Class<?> returnType = ReflectionUtils.getResolvedMethodReturnType(repo.getRepositoryClass(), method); ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(returnType); if (managedViewType != null) { return managedViewType.getJavaType(); } else if (returnType.getTypeParameters().length > 0) { Class<?> firstReturnTypeArgument = ReflectionUtils.getResolvedMethodReturnTypeArguments(repo.getRepositoryClass(), method)[0]; managedViewType = evm.getMetamodel().managedView(firstReturnTypeArgument); if (managedViewType != null) { return managedViewType.getJavaType(); } } return null; }
public static Class<?> extractEntityViewClass(EntityViewRepositoryComponent repo, Method method, EntityViewManager evm) { Class<?> returnType = ReflectionUtils.getResolvedMethodReturnType(repo.getRepositoryClass(), method); ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(returnType); if (managedViewType != null) { return managedViewType.getJavaType(); } else if (returnType.getTypeParameters().length > 0) { Class<?> firstReturnTypeArgument = ReflectionUtils.getResolvedMethodReturnTypeArguments(repo.getRepositoryClass(), method)[0]; managedViewType = evm.getMetamodel().managedView(firstReturnTypeArgument); if (managedViewType != null) { return managedViewType.getJavaType(); } } return null; }
public static Class<?> extractEntityViewClass(EntityViewRepositoryComponent repo, Method method, EntityViewManager evm) { Class<?> returnType = ReflectionUtils.getResolvedMethodReturnType(repo.getRepositoryClass(), method); ManagedViewType<?> managedViewType = evm.getMetamodel().managedView(returnType); if (managedViewType != null) { return managedViewType.getJavaType(); } else if (returnType.getTypeParameters().length > 0) { Class<?> firstReturnTypeArgument = ReflectionUtils.getResolvedMethodReturnTypeArguments(repo.getRepositoryClass(), method)[0]; managedViewType = evm.getMetamodel().managedView(firstReturnTypeArgument); if (managedViewType != null) { return managedViewType.getJavaType(); } } return null; }
if (attr.getJavaMember() instanceof Method) { Method method = (Method) attr.getJavaMember(); Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method); if (attr.getJavaMember() instanceof Method) { Method method = (Method) attr.getJavaMember(); Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method);
if (attr.getJavaMember() instanceof Method) { Method method = (Method) attr.getJavaMember(); Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method); if (attr.getJavaMember() instanceof Method) { Method method = (Method) attr.getJavaMember(); Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(resolverBaseClass, method);
private static Class<?> getElementTypeOrNull(TargetType t, boolean singular) { if (singular && t.getLeafBaseClass() == t.getLeafBaseValueClass() && (Collection.class.isAssignableFrom(t.getLeafBaseClass()) || Map.class.isAssignableFrom(t.getLeafBaseClass()))) { Member javaMember = t.getLeafMethod().getJavaMember(); Class<?> elementClass; if (javaMember instanceof Field) { Class<?>[] resolvedFieldTypeArguments = ReflectionUtils.getResolvedFieldTypeArguments(t.getLeafMethod().getDeclaringType().getJavaType(), (Field) javaMember); elementClass = resolvedFieldTypeArguments[resolvedFieldTypeArguments.length - 1]; } else if (javaMember instanceof Method) { Class<?>[] resolvedMethodReturnTypeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(t.getLeafMethod().getDeclaringType().getJavaType(), (Method) javaMember); elementClass = resolvedMethodReturnTypeArguments[resolvedMethodReturnTypeArguments.length - 1]; } else { elementClass = null; } if (elementClass != t.getLeafBaseValueClass()) { return elementClass; } } return null; }
typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(currentPosition.getCurrentClass(), (Field) attribute.getJavaMember()); } else if (attribute.getJavaMember() instanceof Method) { typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(currentPosition.getCurrentClass(), (Method) attribute.getJavaMember()); } else { typeArguments = EMPTY;
typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(currentPosition.getCurrentClass(), (Field) attribute.getJavaMember()); } else if (attribute.getJavaMember() instanceof Method) { typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(currentPosition.getCurrentClass(), (Method) attribute.getJavaMember()); } else { typeArguments = EMPTY;