CompoundType(final TypeList interfaces, final Type<T> baseType) { _baseType = VerifyArgument.notNull(baseType, "baseType"); final Type[] sortedInterfaces = VerifyArgument.notNull(interfaces, "interfaces").toArray(); Arrays.sort( sortedInterfaces, new Comparator<Type>() { @Override public int compare(final Type o1, final Type o2) { return Integer.compare(Helper.rank(o1), Helper.rank(o2)); } }); _interfaces = interfaces; }
CompoundType(final TypeList interfaces, final Type<T> baseType) { _baseType = VerifyArgument.notNull(baseType, "baseType"); final Type[] sortedInterfaces = VerifyArgument.notNull(interfaces, "interfaces").toArray(); Arrays.sort( sortedInterfaces, new Comparator<Type>() { @Override public int compare(final Type o1, final Type o2) { return Integer.compare(Helper.rank(o1), Helper.rank(o2)); } }); _interfaces = interfaces; }
CompoundType(final TypeList interfaces, final Type<T> baseType) { _baseType = VerifyArgument.notNull(baseType, "baseType"); final Type[] sortedInterfaces = VerifyArgument.notNull(interfaces, "interfaces").toArray(); Arrays.sort( sortedInterfaces, new Comparator<Type>() { @Override public int compare(final Type o1, final Type o2) { return Integer.compare(Helper.rank(o1), Helper.rank(o2)); } }); _interfaces = interfaces; }
public TypeBindings withAdditionalParameter(final Type genericParameter) { if (containsGenericParameter(genericParameter)) { return this; } final Type[] genericParameters; final Type[] boundTypes; final int newParameterCount = _genericParameters.size() + 1; boundTypes = new Type[newParameterCount]; genericParameters = new Type[newParameterCount]; _boundTypes.toArray(boundTypes); _genericParameters.toArray(genericParameters); genericParameters[newParameterCount - 1] = genericParameter; boundTypes[newParameterCount - 1] = genericParameter; return new TypeBindings(Type.list(genericParameters), Type.list(boundTypes)); }
public TypeBindings withAdditionalParameter(final Type genericParameter) { if (containsGenericParameter(genericParameter)) { return this; } final Type[] genericParameters; final Type[] boundTypes; final int newParameterCount = _genericParameters.size() + 1; boundTypes = new Type[newParameterCount]; genericParameters = new Type[newParameterCount]; _boundTypes.toArray(boundTypes); _genericParameters.toArray(genericParameters); genericParameters[newParameterCount - 1] = genericParameter; boundTypes[newParameterCount - 1] = genericParameter; return new TypeBindings(Type.list(genericParameters), Type.list(boundTypes)); }
public TypeBindings withAdditionalParameter(final Type genericParameter) { if (containsGenericParameter(genericParameter)) { return this; } final Type[] genericParameters; final Type[] boundTypes; final int newParameterCount = _genericParameters.size() + 1; boundTypes = new Type[newParameterCount]; genericParameters = new Type[newParameterCount]; _boundTypes.toArray(boundTypes); _genericParameters.toArray(genericParameters); genericParameters[newParameterCount - 1] = genericParameter; boundTypes[newParameterCount - 1] = genericParameter; return new TypeBindings(Type.list(genericParameters), Type.list(boundTypes)); }
public TypeList visit(final TypeList types, final T parameter) { Type<?>[] newTypes = null; for (int i = 0, n = types.size(); i < n; i++) { final Type oldType = types.get(i); final Type newType = visit(oldType, parameter); if (newType != oldType) { if (newTypes == null) { newTypes = types.toArray(); } newTypes[i] = newType; } } if (newTypes != null) { return Type.list(newTypes); } return types; }
public TypeList visit(final TypeList types, final T parameter) { Type<?>[] newTypes = null; for (int i = 0, n = types.size(); i < n; i++) { final Type oldType = types.get(i); final Type newType = visit(oldType, parameter); if (newType != oldType) { if (newTypes == null) { newTypes = types.toArray(); } newTypes[i] = newType; } } if (newTypes != null) { return Type.list(newTypes); } return types; }
public TypeList visit(final TypeList types, final T parameter) { Type<?>[] newTypes = null; for (int i = 0, n = types.size(); i < n; i++) { final Type oldType = types.get(i); final Type newType = visit(oldType, parameter); if (newType != oldType) { if (newTypes == null) { newTypes = types.toArray(); } newTypes[i] = newType; } } if (newTypes != null) { return Type.list(newTypes); } return types; }
public static TypeList map(final TypeList ts, final TypeMapping f) { if (ts.isEmpty()) { return TypeList.empty(); } Type[] results = null; for (int i = 0, n = ts.size(); i < n; i++) { final Type t = ts.get(i); final Type r = f.apply(t); if (r != t) { if (results == null) { results = ts.toArray(); } results[i] = r; } } if (results != null) { return new TypeList(results); } return ts; }
public static TypeList map(final TypeList ts, final TypeMapping f) { if (ts.isEmpty()) { return TypeList.empty(); } Type[] results = null; for (int i = 0, n = ts.size(); i < n; i++) { final Type t = ts.get(i); final Type r = f.apply(t); if (r != t) { if (results == null) { results = ts.toArray(); } results[i] = r; } } if (results != null) { return new TypeList(results); } return ts; }
public static TypeList map(final TypeList ts, final TypeMapping f) { if (ts.isEmpty()) { return TypeList.empty(); } Type[] results = null; for (int i = 0, n = ts.size(); i < n; i++) { final Type t = ts.get(i); final Type r = f.apply(t); if (r != t) { if (results == null) { results = ts.toArray(); } results[i] = r; } } if (results != null) { return new TypeList(results); } return ts; }
@Override public ImmutableList<Type<?>> visitClassType(final Type<?> t, final ImmutableList<Type<?>> list) { final TypeList interfaces = t.getExplicitInterfaces(); if (interfaces.isEmpty()) { return ImmutableList.empty(); } ImmutableList<Type<?>> result = union(list, ImmutableList.from(t.getExplicitInterfaces().toArray())); for (final Type ifType : interfaces) { if (!list.contains(ifType)) { result = union(result, visit(ifType, result)); } } return result; }
@Override public ImmutableList<Type<?>> visitClassType(final Type<?> t, final ImmutableList<Type<?>> list) { final TypeList interfaces = t.getExplicitInterfaces(); if (interfaces.isEmpty()) { return ImmutableList.empty(); } ImmutableList<Type<?>> result = union(list, ImmutableList.from(t.getExplicitInterfaces().toArray())); for (final Type ifType : interfaces) { if (!list.contains(ifType)) { result = union(result, visit(ifType, result)); } } return result; }
@Override public ImmutableList<Type<?>> visitClassType(final Type<?> t, final ImmutableList<Type<?>> list) { final TypeList interfaces = t.getExplicitInterfaces(); if (interfaces.isEmpty()) { return ImmutableList.empty(); } ImmutableList<Type<?>> result = union(list, ImmutableList.from(t.getExplicitInterfaces().toArray())); for (final Type ifType : interfaces) { if (!list.contains(ifType)) { result = union(result, visit(ifType, result)); } } return result; }
public MethodInfo findBaseMethod(final Type<?> relativeTo) { VerifyArgument.notNull(relativeTo, "relativeTo"); final Type<?> declaringType = getDeclaringType(); if (!relativeTo.isAssignableFrom(declaringType)) { throw Error.invalidAncestorType(relativeTo, declaringType); } if (isStatic() || isPrivate()) { return null; } final ParameterList parameters = getParameters(); return relativeTo.getMethod( getName(), BindingFlags.AllInstance, getCallingConvention(), parameters.getParameterTypes().toArray(new Type[parameters.size()]) ); }
public MethodInfo findBaseMethod(final Type<?> relativeTo) { VerifyArgument.notNull(relativeTo, "relativeTo"); final Type<?> declaringType = getDeclaringType(); if (!relativeTo.isAssignableFrom(declaringType)) { throw Error.invalidAncestorType(relativeTo, declaringType); } if (isStatic() || isPrivate() || declaringType.isInterface()) { return null; } final ParameterList parameters = getParameters(); return relativeTo.getMethod( getName(), BindingFlags.AllInstance, getCallingConvention(), parameters.getParameterTypes().toArray(new Type[parameters.size()]) ); }
public MethodInfo findBaseMethod(final Type<?> relativeTo) { VerifyArgument.notNull(relativeTo, "relativeTo"); final Type<?> declaringType = getDeclaringType(); if (!relativeTo.isAssignableFrom(declaringType)) { throw Error.invalidAncestorType(relativeTo, declaringType); } if (isStatic() || isPrivate() || declaringType.isInterface()) { return null; } final ParameterList parameters = getParameters(); return relativeTo.getMethod( getName(), BindingFlags.AllInstance, getCallingConvention(), parameters.getParameterTypes().toArray(new Type[parameters.size()]) ); }