public ParameterSpec(String name, Collection<TypeMirror> allowedTypes) { this.name = name; this.allowedTypes = allowedTypes; boolean anyTypeTemp = false; for (TypeMirror type : allowedTypes) { if (ElementUtils.isObject(type)) { anyTypeTemp = true; break; } } this.anyType = anyTypeTemp; }
public ParameterSpec(String name, Collection<TypeMirror> allowedTypes) { this.name = name; this.allowedTypes = allowedTypes; boolean anyTypeTemp = false; for (TypeMirror type : allowedTypes) { if (ElementUtils.isObject(type)) { anyTypeTemp = true; break; } } this.anyType = anyTypeTemp; }
public static boolean isTypeBoxingOptimized(TypeBoxingOptimization boxing, TypeMirror type) { switch (boxing) { case NONE: return false; case ALWAYS: return !ElementUtils.isObject(type) && !ElementUtils.isVoid(type); case PRIMITIVE: return ElementUtils.isPrimitive(type); default: throw new AssertionError(); } }
public static boolean needsCastTo(TypeMirror sourceType, TypeMirror targetType) { if (typeEquals(sourceType, targetType)) { return false; } else if (isObject(targetType)) { return false; } else if (isVoid(targetType)) { return false; } else if (isAssignable(sourceType, targetType)) { return false; } return true; }
public static boolean needsCastTo(TypeMirror sourceType, TypeMirror targetType) { if (typeEquals(sourceType, targetType)) { return false; } else if (isObject(targetType)) { return false; } else if (isVoid(targetType)) { return false; } else if (isAssignable(sourceType, targetType)) { return false; } return true; }
public static String createName(ExecutableTypeData type) { return "execute" + (ElementUtils.isObject(type.getReturnType()) ? "" : ElementUtils.getTypeId(type.getReturnType())); }
private static String executeChildMethodName(NodeExecutionData execution, TypeMirror type) { return "execute" + ElementUtils.firstLetterUpperCase(execution.getName()) + (ElementUtils.isObject(type) ? "" : getTypeId(type)) + NAME_SUFFIX; }
public static String createName(ExecutableTypeData type) { return "execute" + (ElementUtils.isObject(type.getReturnType()) ? "" : ElementUtils.getTypeId(type.getReturnType())); }
private static LocalVariable renameExecutableTypeParameter(CodeExecutableElement method, ExecutableTypeData executedType, int evaluatedIndex, TypeMirror targetType, LocalVariable var) { int parameterIndex = executedType.getParameterIndex(evaluatedIndex); int varArgsIndex = executedType.getVarArgsIndex(parameterIndex); LocalVariable returnVar = var; if (varArgsIndex >= 0) { returnVar = returnVar.accessWith(CodeTreeBuilder.singleString(VARARGS_NAME + "[" + varArgsIndex + "]")); } else { ((CodeVariableElement) method.getParameters().get(parameterIndex)).setName(returnVar.getName()); } if (!isObject(targetType)) { returnVar = returnVar.newType(targetType); } return returnVar; }
public static boolean isAssignable(TypeMirror from, TypeMirror to) { if (typeEquals(from, to)) { return true; } else if (isVoid(to)) { return true; } else if (isObject(to)) { return true; } ProcessorContext context = ProcessorContext.getInstance(); if (!(from instanceof CodeTypeMirror) && !(to instanceof CodeTypeMirror)) { return context.getEnvironment().getTypeUtils().isAssignable(context.reloadType(from), context.reloadType(to)); } else { return isAssignableImpl(from, to); } }
public static boolean isAssignable(TypeMirror from, TypeMirror to) { if (typeEquals(from, to)) { return true; } else if (isVoid(to)) { return true; } else if (isObject(to)) { return true; } ProcessorContext context = ProcessorContext.getInstance(); if (!(from instanceof CodeTypeMirror) && !(to instanceof CodeTypeMirror)) { return context.getEnvironment().getTypeUtils().isAssignable(context.reloadType(from), context.reloadType(to)); } else { return isAssignableImpl(from, to); } }
private static LocalVariable renameExecutableTypeParameter(CodeExecutableElement method, ExecutableTypeData executedType, int evaluatedIndex, TypeMirror targetType, LocalVariable var) { int parameterIndex = executedType.getParameterIndex(evaluatedIndex); int varArgsIndex = executedType.getVarArgsIndex(parameterIndex); LocalVariable returnVar = var; if (varArgsIndex >= 0) { returnVar = returnVar.accessWith(CodeTreeBuilder.singleString(VARARGS_NAME + "[" + varArgsIndex + "]")); } else { ((CodeVariableElement) method.getParameters().get(parameterIndex)).setName(returnVar.getName()); } if (!isObject(targetType)) { returnVar = returnVar.newType(targetType); } return returnVar; }
public static CodeTree implicitType(TypeSystemData typeSystem, TypeMirror type, CodeTree value) { if (ElementUtils.isObject(type)) { return value; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); builder.startStaticCall(createTypeSystemGen(typeSystem), getImplicitClass(typeSystem, type)).tree(value); builder.end(); return builder.build(); }
private static CodeTree callImplictMethod(TypeSystemData typeSystem, TypeMirror type, String methodName, CodeTree value, String typeHint) { if (ElementUtils.isObject(type)) { return value; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); builder.startStaticCall(createTypeSystemGen(typeSystem), methodName).tree(value); if (typeHint != null) { builder.string(typeHint); } builder.end(); return builder.build(); }
public static CodeTree check(TypeSystemData typeSystem, TypeMirror type, CodeTree content) { if (ElementUtils.isObject(type)) { return content; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); TypeCheckData check = typeSystem.getCheck(type); if (check == null) { builder.instanceOf(content, ElementUtils.boxType(typeSystem.getContext(), type)); } else { builder.startStaticCall(typeSystem.getTemplateType().asType(), check.getMethodName()).tree(content).end(); } return builder.build(); }
private static CodeTree callImplictMethodFlat(TypeSystemData typeSystem, TypeMirror type, String methodName, CodeTree value, CodeTree state) { if (ElementUtils.isObject(type)) { return value; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); builder.startStaticCall(createTypeSystemGen(typeSystem), methodName); if (state != null) { builder.tree(state); } builder.tree(value); builder.end(); return builder.build(); }
public static CodeTree cast(TypeSystemData typeSystem, TypeMirror type, CodeTree content) { if (ElementUtils.isObject(type)) { return content; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); TypeCastData cast = typeSystem.getCast(type); if (cast == null) { builder.cast(ElementUtils.fillInGenericWildcards(type), content); } else { builder.startStaticCall(typeSystem.getTemplateType().asType(), cast.getMethodName()).tree(content).end(); } return builder.build(); }
static CodeTree check(TypeSystemData typeSystem, TypeMirror type, CodeTree content) { if (ElementUtils.isObject(type)) { return content; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); TypeCheckData check = typeSystem.getCheck(type); if (check == null) { builder.instanceOf(content, ElementUtils.boxType(typeSystem.getContext(), type)); } else { builder.startStaticCall(typeSystem.getTemplateType().asType(), check.getMethodName()).tree(content).end(); } return builder.build(); }
static CodeTree expect(TypeSystemData typeSystem, TypeMirror type, CodeTree content) { if (ElementUtils.isObject(type) || ElementUtils.isVoid(type)) { return content; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); if (typeSystem.hasType(type)) { builder.startStaticCall(createTypeSystemGen(typeSystem), expectTypeMethodName(typeSystem, type)).tree(content).end(); } else { builder.startCall(expectTypeMethodName(typeSystem, type)).tree(content).end(); } return builder.build(); }
public static CodeTree expect(TypeSystemData typeSystem, TypeMirror type, CodeTree content) { if (ElementUtils.isObject(type) || ElementUtils.isVoid(type)) { return content; } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); if (typeSystem.hasType(type)) { builder.startStaticCall(createTypeSystemGen(typeSystem), expectTypeMethodName(typeSystem, type)).tree(content).end(); } else { builder.startCall(expectTypeMethodName(typeSystem, type)).tree(content).end(); } return builder.build(); }