private void resolveTypeArguments(List<Type> typeArguments, List<org.kie.workbench.common.services.datamodeller.core.Type> resultTypeArguments) { if (typeArguments != null) { for (Type typeArgument : typeArguments) { org.kie.workbench.common.services.datamodeller.core.impl.TypeImpl resultType = new org.kie.workbench.common.services.datamodeller.core.impl.TypeImpl(typeArgument.getQualifiedName(), new ArrayList<>()); resultTypeArguments.add(resultType); resolveTypeArguments(typeArgument.getTypeArguments(), resultType.getTypeArguments()); } } }
@Override public String getGenericType() { if (this.readMethod != null) { @SuppressWarnings({ "unchecked", "rawtypes" }) List<Type<?>> typeArguments = (List) this.readMethod.getReturnType().getTypeArguments(); if (!typeArguments.isEmpty()) { return typeArguments.get(0).getQualifiedName(); } } if (this.privateField != null) { @SuppressWarnings({ "unchecked", "rawtypes" }) List<Type<?>> typeArguments = (List) this.privateField.getType().getTypeArguments(); if (!typeArguments.isEmpty()) { return typeArguments.get(0).getQualifiedName(); } } return null; }
@Override public String getGenericType() { if (this.readMethod != null) { @SuppressWarnings({ "unchecked", "rawtypes" }) List<Type<?>> typeArguments = (List) this.readMethod.getReturnType().getTypeArguments(); if (!typeArguments.isEmpty()) { return typeArguments.get(0).getQualifiedName(); } } if (this.privateField != null) { @SuppressWarnings({ "unchecked", "rawtypes" }) List<Type<?>> typeArguments = (List) this.privateField.getType().getTypeArguments(); if (!typeArguments.isEmpty()) { return typeArguments.get(0).getQualifiedName(); } } return null; }
if (type.isParameterized() && type.getTypeArguments().size() > 1) { return false; return isSimpleClass(((List<Type>) type.getTypeArguments()).get(0));
public static Object[] isSimpleGeneric(Type type, ClassTypeResolver classTypeResolver) throws ModelDriverException { Object[] result = new Object[3]; result[0] = false; result[1] = null; result[2] = null; if (type.isArray() || type.isPrimitive() || !type.isParameterized() || (type.isParameterized() && type.getTypeArguments().size() != 1)) { return result; } Type<?> argument = ((List<Type>) type.getTypeArguments()).get(0); if (!isSimpleClass(argument)) { return result; } try { String outerClass = classTypeResolver.getFullTypeName(type.getName()); String argumentClass = classTypeResolver.getFullTypeName(argument.getName()); result[0] = true; result[1] = outerClass; result[2] = argumentClass; return result; } catch (ClassNotFoundException e) { throw new ModelDriverException("Class could not be resolved for name: " + type.getName() + ". " + e.getMessage(), e); } }
@Override public Import addImport(final Type<?> type) { Import imprt; if (requiresImport(type.getQualifiedName())) { imprt = addImport(type.getQualifiedName()); } else { imprt = getImport(type.getQualifiedName()); } for (Type<?> arg : type.getTypeArguments()) { if (!arg.isWildcard() && arg.isQualified()) { addImport(arg); } } return imprt; }
@Override public Import addImport(final Type<?> type) { Import imprt; if (requiresImport(type.getQualifiedName())) { imprt = addImport(type.getQualifiedName()); } else { imprt = getImport(type.getQualifiedName()); } for (Type<?> arg : type.getTypeArguments()) { if (!arg.isWildcard() && arg.isQualified()) { addImport(arg); } } return imprt; }
Type elementsType = ((List<Type>) fieldType.getTypeArguments()).get(0); fieldClassName = classTypeResolver.getFullTypeName(elementsType.getName());
new org.kie.workbench.common.services.datamodeller.core.impl.TypeImpl(resolveTypeName(classTypeResolver, parameter.getType().getName()), resolveTypeArguments(parameter.getType().getTypeArguments())), parameter.getName())); resolveTypeName(classTypeResolver, method.getReturnType().getName()), resolveTypeArguments(method.getReturnType().getTypeArguments()));
Type elementsType = ((List<Type>) type.getTypeArguments()).get(0); className = resolveTypeName(classTypeResolver, elementsType.getName());