protected static TypeMatcher getPrimitiveMatcher(Class<?> primitiveClazz) { assert primitiveClazz.isPrimitive(); TypeKind primitiveKind = CLASS_KIND_MAP.get(primitiveClazz); return KIND_MATCHERS[primitiveKind.ordinal()]; }
/** * Returns TypeKind ordinal for primitive types and DECLARED ordinal for DECLARED, ARRAY and TYPEVAR * @param kind * @return */ public static int getTypeNumber(TypeKind kind) { switch (kind) { case BOOLEAN: case BYTE: case CHAR: case SHORT: case INT: case LONG: case FLOAT: case DOUBLE: case VOID: return kind.ordinal(); case DECLARED: case TYPEVAR: case ARRAY: return TypeKind.DECLARED.ordinal(); default: throw new IllegalArgumentException(kind+" not valid"); } } /**
boolean[] s = (boolean[]) valueStack[ot.ordinal()]; return "boolean("+s[sp]+")"; byte[] s = (byte[]) valueStack[ot.ordinal()]; return "byte("+s[sp]+")"; char[] s = (char[]) valueStack[ot.ordinal()]; return "char("+s[sp]+")"; double[] s = (double[]) valueStack[ot.ordinal()]; return "double("+ s[sp]+")"; float[] s = (float[]) valueStack[ot.ordinal()]; return "float("+s[sp]+")"; int[] s = (int[]) valueStack[ot.ordinal()]; return "int("+s[sp]+")"; long[] s = (long[]) valueStack[ot.ordinal()]; return "long("+s[sp]+")"; Object[] s = (Object[]) valueStack[ot.ordinal()]; return s[sp]+""; short[] s = (short[]) valueStack[ot.ordinal()]; return "short("+s[sp]+")";
public void buildStatement(Element element) { TypeMirror typeMirror = element.asType(); int type = typeMirror.getKind().ordinal(); String defaultValue = "t." + fieldName; String statement = defaultValue + " = t.getIntent()."; if (type == TypeKind.BOOLEAN.ordinal()) { statement += "getBooleanExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.BYTE.ordinal()) { statement += "getByteExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.SHORT.ordinal()) { statement += "getShortExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.INT.ordinal()) { statement += "getIntExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.LONG.ordinal()) { statement += "getLongExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.CHAR.ordinal()) { statement += "getCharExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.FLOAT.ordinal()) { statement += "getFloatExtra($S, " + defaultValue + ")"; } else if (type == TypeKind.DOUBLE.ordinal()) { statement += "getDoubleExtra($S, " + defaultValue + ")"; } else { if (type == TypeKind.ARRAY.ordinal()) { addArrayStatement(statement, fieldName, extraName, typeMirror, element); } else {
private boolean typeMatches(TreePath currentPath, String placeholderName) { TypeMirror designed = designedTypeHack != null ? designedTypeHack.get(placeholderName) : null; boolean bind; if (designed != null && designed.getKind() != TypeKind.ERROR) { TypeMirror real = info.getTrees().getTypeMirror(currentPath); if (real != null && !IGNORE_KINDS.contains(real.getKind())) { // special hack: if the designed type is DECLARED (assuming a boxed primitive) and the real type is // not DECLARED or is null (assuming a real primitive), do not treat them as assignable. // this will stop matching constraint to boxed types against primitive subexpressions. Exclude j.l.Object // which will allow to match raw type parameters if (designed.getKind() == TypeKind.DECLARED && real.getKind().ordinal() <= TypeKind.DOUBLE.ordinal() && !((TypeElement)((DeclaredType)designed).asElement()).getQualifiedName().contentEquals("java.lang.Object")) { //NOI18N bind = false; } else { bind = info.getTypes().isAssignable(real, designed); } } else { bind = false; } } else { bind = designed == null; } return bind; }
return element.asType().getKind().ordinal();
return element.asType().getKind().ordinal();
return element.asType().getKind().ordinal();