@Override public String getName() { return ownerType.getName(); } }
@Override public String getName() { return ownerType.getName(); } }
private static Map<String, MetaType> mapTypeArgsByTypeParamName(final MetaType[] typeParams, final MetaType[] typeArgs) { final Map<String, MetaType> typeArgsByTypeParam = new HashMap<>(); for (int i = 0; i < typeParams.length; i++) { typeArgsByTypeParam.put(typeParams[i].getName(), typeArgs[i]); } return typeArgsByTypeParam; }
private static Map<String, MetaType> mapTypeArgsByTypeParamName(final MetaType[] typeParams, final MetaType[] typeArgs) { final Map<String, MetaType> typeArgsByTypeParam = new HashMap<>(); for (int i = 0; i < typeParams.length; i++) { typeArgsByTypeParam.put(typeParams[i].getName(), typeArgs[i]); } return typeArgsByTypeParam; }
private MetaType getPageWithRole(final MetaType uniquePageRole, final Multimap<Class<?>, MetaClass> pageRoles) { for (final Class<?> pageRole : pageRoles.keySet()) { if (UniquePageRole.class.isAssignableFrom(pageRole) && uniquePageRole.getName().equals(pageRole.getSimpleName())) { final Collection<MetaClass> matchingPages = pageRoles.get(pageRole); if (matchingPages.size() == 1) { return matchingPages.iterator().next(); } else { throw new IllegalStateException("Expected exactly 1 page with the role, " + uniquePageRole.getName() + ", but found " + matchingPages.size()); } } } throw new IllegalStateException("No page with the role " + uniquePageRole.getName() + " was found."); }
private MetaType getPageWithRole(final MetaType uniquePageRole, final Multimap<Class<?>, MetaClass> pageRoles) { for (final Class<?> pageRole : pageRoles.keySet()) { if (UniquePageRole.class.isAssignableFrom(pageRole) && uniquePageRole.getName().equals(pageRole.getSimpleName())) { final Collection<MetaClass> matchingPages = pageRoles.get(pageRole); if (matchingPages.size() == 1) { return matchingPages.iterator().next(); } else { throw new IllegalStateException("Expected exactly 1 page with the role, " + uniquePageRole.getName() + ", but found " + matchingPages.size()); } } } throw new IllegalStateException("No page with the role " + uniquePageRole.getName() + " was found."); }
private static MetaType[] getTypeArgumentsForInterface(final Map<String, MetaType> typeArgsByTypeParam, final MetaClass iface) { return Arrays .stream(Optional.ofNullable(iface.getParameterizedType()) .map(i -> i.getTypeParameters()) .orElseGet(() -> iface.getTypeParameters())) .map(mt -> { if (typeArgsByTypeParam.containsKey(mt.getName())) { return typeArgsByTypeParam.get(mt.getName()); } else { return mt; } }).toArray(size -> new MetaType[size]); }
private static MetaType[] getTypeArgumentsForInterface(final Map<String, MetaType> typeArgsByTypeParam, final MetaClass iface) { return Arrays .stream(Optional.ofNullable(iface.getParameterizedType()) .map(i -> i.getTypeParameters()) .orElseGet(() -> iface.getTypeParameters())) .map(mt -> { if (typeArgsByTypeParam.containsKey(mt.getName())) { return typeArgsByTypeParam.get(mt.getName()); } else { return mt; } }).toArray(size -> new MetaType[size]); }
private String getTypeParmsString(final MetaParameterizedType parameterizedType) { final StringBuilder buf = new StringBuilder(512); if (parameterizedType != null && parameterizedType.getTypeParameters().length != 0) { buf.append("<"); for (int i = 0; i < parameterizedType.getTypeParameters().length; i++) { final MetaType typeParameter = parameterizedType.getTypeParameters()[i]; if (typeParameter instanceof MetaParameterizedType) { final MetaParameterizedType parameterizedTypeParameter = (MetaParameterizedType) typeParameter; buf.append(((MetaClass) parameterizedTypeParameter.getRawType()).getFullyQualifiedName()); buf.append(getTypeParmsString(parameterizedTypeParameter)); } else if (typeParameter instanceof MetaWildcardType) { buf.append(((MetaWildcardType) typeParameter).toString()); } else if (typeParameter instanceof MetaTypeVariable) { buf.append(typeParameter.getName()); } else { buf.append(((MetaClass) typeParameter).getFullyQualifiedName()); } if (i + 1 < parameterizedType.getTypeParameters().length) buf.append(", "); } buf.append(">"); } return buf.toString(); }
private String getTypeParmsString(final MetaParameterizedType parameterizedType) { final StringBuilder buf = new StringBuilder(512); if (parameterizedType != null && parameterizedType.getTypeParameters().length != 0) { buf.append("<"); for (int i = 0; i < parameterizedType.getTypeParameters().length; i++) { final MetaType typeParameter = parameterizedType.getTypeParameters()[i]; if (typeParameter instanceof MetaParameterizedType) { final MetaParameterizedType parameterizedTypeParameter = (MetaParameterizedType) typeParameter; buf.append(((MetaClass) parameterizedTypeParameter.getRawType()).getFullyQualifiedName()); buf.append(getTypeParmsString(parameterizedTypeParameter)); } else if (typeParameter instanceof MetaWildcardType) { buf.append(((MetaWildcardType) typeParameter).toString()); } else if (typeParameter instanceof MetaTypeVariable) { buf.append(typeParameter.getName()); } else { buf.append(((MetaClass) typeParameter).getFullyQualifiedName()); } if (i + 1 < parameterizedType.getTypeParameters().length) buf.append(", "); } buf.append(">"); } return buf.toString(); }
private void validateExistingRolesPresent(final Collection<MetaClass> pages, final Multimap<Class<?>, MetaClass> pageRoles) { for (final MetaClass page : pages) { for (final MetaField field : getAllFields(page)) { if (field.getType().getErased().equals(MetaClassFactory.get(TransitionToRole.class))) { final MetaType uniquePageRole = field.getType().getParameterizedType().getTypeParameters()[0]; try { getPageWithRole(uniquePageRole, pageRoles); } catch (IllegalStateException e) { // give a more descriptive error message. throw new GenerationException("No @Page with the UniquePageRole " + uniquePageRole.getName() + " exists to satisfy TransitionToRole<" + uniquePageRole.getName() + "> in " + page.getFullyQualifiedName() + "." + "\nThere must be exactly 1 @Page with this role.", e); } } } } }
private void validateExistingRolesPresent(final Collection<MetaClass> pages, final Multimap<Class<?>, MetaClass> pageRoles) { for (final MetaClass page : pages) { for (final MetaField field : getAllFields(page)) { if (field.getType().getErased().equals(MetaClassFactory.get(TransitionToRole.class))) { final MetaType uniquePageRole = field.getType().getParameterizedType().getTypeParameters()[0]; try { getPageWithRole(uniquePageRole, pageRoles); } catch (IllegalStateException e) { // give a more descriptive error message. throw new GenerationException("No @Page with the UniquePageRole " + uniquePageRole.getName() + " exists to satisfy TransitionToRole<" + uniquePageRole.getName() + "> in " + page.getFullyQualifiedName() + "." + "\nThere must be exactly 1 @Page with this role.", e); } } } } }