From 78911cc0d499c41cfef2f927237ff3c66186a949 Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Sun, 14 Sep 2014 21:56:05 +0300 Subject: [PATCH] Made the javac-based Generator compatible with JDK 6. --- platform_build/build-generator.xml | 48 ++++++++++--------- .../util/generator/GeneratorProcessor.java | 4 +- .../util/generator/GeneratorVisitor.java | 6 +-- .../util/generator/JavaMethodsGenerator.java | 26 +++++----- .../util/generator/JavaTypeTranslator.java | 2 +- .../generator/NativeMethodStubsGenerator.java | 4 +- .../util/generator/NativeTypeTranslator.java | 14 +++--- .../generator/RegisterStubsGenerator.java | 16 ++++--- .../util/generator/SignatureTranslator.java | 17 +++---- .../org/lwjgl/util/generator/TypeInfo.java | 27 +++++------ src/java/org/lwjgl/util/generator/Utils.java | 21 ++++---- .../util/generator/openal/ALTypeMap.java | 2 +- .../opencl/CLGeneratorProcessor.java | 2 +- .../util/generator/opencl/CLTypeMap.java | 2 +- .../opengl/GLESGeneratorProcessor.java | 2 +- .../util/generator/opengl/GLESTypeMap.java | 2 +- .../opengl/GLGeneratorProcessor.java | 2 +- .../GLReferencesGeneratorProcessor.java | 2 +- .../util/generator/opengl/GLTypeMap.java | 2 +- 19 files changed, 102 insertions(+), 99 deletions(-) diff --git a/platform_build/build-generator.xml b/platform_build/build-generator.xml index 70f2e6c9..538a65cc 100644 --- a/platform_build/build-generator.xml +++ b/platform_build/build-generator.xml @@ -17,20 +17,22 @@ - - - - - - + + + + + + + - - + + + @@ -66,7 +68,7 @@ - + @@ -88,7 +90,7 @@ - + @@ -117,7 +119,7 @@ - + @@ -140,7 +142,7 @@ - + @@ -164,7 +166,7 @@ - + @@ -182,7 +184,7 @@ - + @@ -201,7 +203,7 @@ - + @@ -227,7 +229,7 @@ - + @@ -250,7 +252,7 @@ - + @@ -274,7 +276,7 @@ - + @@ -293,7 +295,7 @@ - + @@ -319,7 +321,7 @@ - + @@ -342,7 +344,7 @@ - + @@ -366,7 +368,7 @@ - + @@ -385,7 +387,7 @@ - + diff --git a/src/java/org/lwjgl/util/generator/GeneratorProcessor.java b/src/java/org/lwjgl/util/generator/GeneratorProcessor.java index 0b5d5579..e9b1fc03 100644 --- a/src/java/org/lwjgl/util/generator/GeneratorProcessor.java +++ b/src/java/org/lwjgl/util/generator/GeneratorProcessor.java @@ -51,7 +51,7 @@ import javax.tools.Diagnostic; * @version $Revision$ $Id$ */ @SupportedAnnotationTypes({ "*" }) -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedOptions({ "binpath", "typemap", "generatechecks", "contextspecific" }) public class GeneratorProcessor extends AbstractProcessor { @@ -87,7 +87,7 @@ public class GeneratorProcessor extends AbstractProcessor { } first_round = false; return true; - } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) { + } catch (Exception e) { if ( lastFile == null ) { throw new RuntimeException(e); } else { diff --git a/src/java/org/lwjgl/util/generator/GeneratorVisitor.java b/src/java/org/lwjgl/util/generator/GeneratorVisitor.java index 80e09454..d1dcda7a 100644 --- a/src/java/org/lwjgl/util/generator/GeneratorVisitor.java +++ b/src/java/org/lwjgl/util/generator/GeneratorVisitor.java @@ -45,7 +45,7 @@ import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.*; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.ElementKindVisitor7; +import javax.lang.model.util.ElementKindVisitor6; import javax.tools.Diagnostic; import javax.tools.Diagnostic.Kind; import javax.tools.FileObject; @@ -57,7 +57,7 @@ import javax.tools.StandardLocation; * @author elias_naur * @version $Revision$ $Id$ */ -public class GeneratorVisitor extends ElementKindVisitor7 { +public class GeneratorVisitor extends ElementKindVisitor6 { private final ProcessingEnvironment env; private final TypeMap type_map; @@ -266,7 +266,7 @@ public class GeneratorVisitor extends ElementKindVisitor7 { native_writer.print("JNIEXPORT void JNICALL " + Utils.getQualifiedNativeMethodName(qualified_interface_name, Utils.STUB_INITIALIZER_NAME)); native_writer.println("(JNIEnv *env, jclass clazz) {"); native_writer.println("\tJavaMethodAndExtFunction functions[] = {"); - RegisterStubsGenerator.generateMethodsNativeStubBind(env, native_writer, d, generate_error_checks, context_specific); + RegisterStubsGenerator.generateMethodsNativeStubBind(native_writer, d, generate_error_checks, context_specific); native_writer.println("\t};"); native_writer.println("\tint num_functions = NUMFUNCTIONS(functions);"); native_writer.print("\t"); diff --git a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java index bd8b48dd..554b2880 100644 --- a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java +++ b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java @@ -73,7 +73,7 @@ public class JavaMethodsGenerator { if ( method.getAnnotation(GenerateAutos.class) != null ) { printMethodWithMultiType(env, type_map, writer, interface_decl, method, TypeInfo.getDefaultTypeInfoMap(method), Mode.AUTOS, generate_error_checks, context_specific); } - Collection> cross_product = TypeInfo.getTypeInfoCrossProduct(env, type_map, method); + Collection> cross_product = TypeInfo.getTypeInfoCrossProduct(type_map, method); for ( Map typeinfos_instance : cross_product ) { printMethodWithMultiType(env, type_map, writer, interface_decl, method, typeinfos_instance, Mode.NORMAL, generate_error_checks, context_specific); } @@ -115,7 +115,7 @@ public class JavaMethodsGenerator { writer.print(Utils.BUFFER_OBJECT_METHOD_POSTFIX); } writer.print("("); - boolean first_parameter = generateParametersJava(env, writer, method, TypeInfo.getDefaultTypeInfoMap(method), true, true, mode); + boolean first_parameter = generateParametersJava(writer, method, TypeInfo.getDefaultTypeInfoMap(method), true, true, mode); if ( context_specific ) { if ( !first_parameter ) { writer.print(", "); @@ -125,7 +125,7 @@ public class JavaMethodsGenerator { writer.println(");"); } - private static boolean generateParametersJava(ProcessingEnvironment env, PrintWriter writer, ExecutableElement method, Map typeinfos_instance, boolean native_stub, final boolean printTypes, Mode mode) { + private static boolean generateParametersJava(PrintWriter writer, ExecutableElement method, Map typeinfos_instance, boolean native_stub, final boolean printTypes, Mode mode) { boolean first_parameter = true; for ( VariableElement param : method.getParameters() ) { if ( native_stub && (param.getAnnotation(Helper.class) != null && !param.getAnnotation(Helper.class).passToNative()) ) { @@ -281,7 +281,7 @@ public class JavaMethodsGenerator { method_name = getPostfixStrippedName(type_map, interface_decl, method); } writer.print(" " + method_name + "("); - generateParametersJava(env, writer, method, typeinfos_instance, false, true, mode); + generateParametersJava(writer, method, typeinfos_instance, false, true, mode); writer.println(") {"); final TypeMirror result_type = Utils.getMethodReturnType(method); @@ -295,7 +295,7 @@ public class JavaMethodsGenerator { } writer.print(reuse_annotation.value() + "." + (reuse_annotation.method().length() > 0 ? reuse_annotation.method() : method_name) + "("); - generateParametersJava(env, writer, method, typeinfos_instance, false, false, mode); + generateParametersJava(writer, method, typeinfos_instance, false, false, mode); writer.println(");\n\t}"); return; } @@ -441,7 +441,7 @@ public class JavaMethodsGenerator { return false; } - private static final Map postfixPatterns = new HashMap<>(); + private static final Map postfixPatterns = new HashMap(); private static Pattern getPostfixPattern(String regex) { Pattern pattern = postfixPatterns.get(regex); @@ -697,7 +697,7 @@ public class JavaMethodsGenerator { for ( VariableElement param : method.getParameters() ) { Class java_type = Utils.getJavaType(param.asType()); - if ( java_type.isArray() || (Utils.isAddressableType((Class)java_type) + if ( java_type.isArray() || (Utils.isAddressableType(java_type) && (mode != Mode.BUFFEROBJECT || param.getAnnotation(BufferObject.class) == null) && (mode != Mode.AUTOS || getAutoTypeParameter(method, param) == null) && param.getAnnotation(Result.class) == null @@ -710,25 +710,23 @@ public class JavaMethodsGenerator { can_be_null = check_annotation.canBeNull(); } if ( (Buffer.class.isAssignableFrom(java_type) || PointerBuffer.class.isAssignableFrom(java_type)) && param.getAnnotation(Constant.class) == null ) { - boolean out_parameter = param.getAnnotation(OutParameter.class) != null; TypeInfo typeinfo = typeinfos.get(param); - printParameterCheck(writer, method, param.getSimpleName().toString(), typeinfo.getType().getSimpleName(), check_value, can_be_null, param.getAnnotation(NullTerminated.class), out_parameter, generate_error_checks); + printParameterCheck(writer, method, param.getSimpleName().toString(), typeinfo.getType().getSimpleName(), check_value, can_be_null, param.getAnnotation(NullTerminated.class), generate_error_checks); } else if ( String.class.equals(java_type) ) { if ( !can_be_null ) { writer.println("\t\tBufferChecks.checkNotNull(" + param.getSimpleName() + ");"); } } else if ( java_type.isArray() ) { - final TypeInfo typeinfo = typeinfos.get(param); - printArrayParameterCheck(writer, param.getSimpleName().toString(), typeinfo.getType().getSimpleName(), check_value, can_be_null); + printArrayParameterCheck(writer, param.getSimpleName().toString(), check_value, can_be_null); } } } if ( method.getAnnotation(CachedResult.class) != null ) { - printParameterCheck(writer, method, Utils.CACHED_BUFFER_NAME, null, null, true, null, false, generate_error_checks); + printParameterCheck(writer, method, Utils.CACHED_BUFFER_NAME, null, null, true, null, generate_error_checks); } } - private static void printParameterCheck(PrintWriter writer, ExecutableElement method, String name, String type, String check_value, boolean can_be_null, NullTerminated null_terminated, boolean out_parameter, boolean generate_error_checks) { + private static void printParameterCheck(PrintWriter writer, ExecutableElement method, String name, String type, String check_value, boolean can_be_null, NullTerminated null_terminated, boolean generate_error_checks) { String tabs; if ( can_be_null ) { writer.print("\t\tif (" + name + " != null)"); @@ -773,7 +771,7 @@ public class JavaMethodsGenerator { } } - private static void printArrayParameterCheck(PrintWriter writer, String name, String type, String check_value, boolean can_be_null) { + private static void printArrayParameterCheck(PrintWriter writer, String name, String check_value, boolean can_be_null) { String tabs; if ( can_be_null ) { writer.println("\t\tif (" + name + " != null)"); diff --git a/src/java/org/lwjgl/util/generator/JavaTypeTranslator.java b/src/java/org/lwjgl/util/generator/JavaTypeTranslator.java index 276092d2..d4319069 100644 --- a/src/java/org/lwjgl/util/generator/JavaTypeTranslator.java +++ b/src/java/org/lwjgl/util/generator/JavaTypeTranslator.java @@ -63,7 +63,7 @@ public class JavaTypeTranslator extends SimpleTypeVisitor6 { } finally { if ( type == null ) { if ( componentType instanceof PrimitiveType ) { - type = getPrimitiveArrayClassFromKind(((PrimitiveType)componentType).getKind()); + type = getPrimitiveArrayClassFromKind(componentType.getKind()); } else { throw new RuntimeException(t + " is not allowed"); } diff --git a/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java b/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java index 245270b7..30f7b404 100644 --- a/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java +++ b/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java @@ -281,14 +281,14 @@ public class NativeMethodStubsGenerator { for ( VariableElement param : method.getParameters() ) { final Constant constant_annotation = param.getAnnotation(Constant.class); if ( param.getAnnotation(Result.class) == null && (constant_annotation == null || !constant_annotation.isNative()) && Utils.isAddressableType(param.asType()) ) - generateBufferParameterAddress(type_map, writer, method, param, mode); + generateBufferParameterAddress(type_map, writer, param, mode); } } private static boolean strLoopDeclared; private static boolean ptrLoopDeclared; - private static void generateBufferParameterAddress(TypeMap type_map, PrintWriter writer, ExecutableElement method, VariableElement param, Mode mode) { + private static void generateBufferParameterAddress(TypeMap type_map, PrintWriter writer, VariableElement param, Mode mode) { final Check check_annotation = param.getAnnotation(Check.class); final PointerArray array_annotation = param.getAnnotation(PointerArray.class); final Class java_type = Utils.getJavaType(param.asType()); diff --git a/src/java/org/lwjgl/util/generator/NativeTypeTranslator.java b/src/java/org/lwjgl/util/generator/NativeTypeTranslator.java index c5a9f478..527fc9f4 100644 --- a/src/java/org/lwjgl/util/generator/NativeTypeTranslator.java +++ b/src/java/org/lwjgl/util/generator/NativeTypeTranslator.java @@ -110,11 +110,11 @@ public class NativeTypeTranslator extends SimpleTypeVisitor6 { if ( CharSequence.class.isAssignableFrom(type) ) { is_indirect = true; - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(type_map.getStringArrayType()); } else if ( Buffer.class.isAssignableFrom(type) ) { is_indirect = true; - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(type_map.getByteBufferArrayType()); } else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) ) { is_indirect = false; @@ -163,16 +163,16 @@ public class NativeTypeTranslator extends SimpleTypeVisitor6 { Class c = getClassFromType(t); if ( String.class.equals(c) ) { - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(type_map.getStringElementType()); } else if ( Buffer.class.equals(c) ) { - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(type_map.getVoidType()); } else if ( Buffer.class.isAssignableFrom(c) || PointerBuffer.class.isAssignableFrom(c) ) { TypeKind kind = getPrimitiveKindFromBufferClass(c); getNativeTypeFromAnnotatedPrimitiveType(kind); } else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(c) ) { - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(PointerWrapper.class); is_indirect = false; @@ -191,7 +191,7 @@ public class NativeTypeTranslator extends SimpleTypeVisitor6 { // See ARB_debug_label.glObjectPtrLabel Class c = getClassFromType(t); if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(c) ) { - native_types = new ArrayList<>(); + native_types = new ArrayList(); native_types.add(PointerWrapper.class); is_indirect = false; @@ -227,7 +227,7 @@ public class NativeTypeTranslator extends SimpleTypeVisitor6 { } private List translateAnnotations() { - List result = new ArrayList<>(); + List result = new ArrayList(); for ( AnnotationMirror annotation : Utils.getSortedAnnotations(declaration.getAnnotationMirrors()) ) { Class translated_result = translateAnnotation(annotation); if ( translated_result != null ) { diff --git a/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java b/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java index 9edcd1fc..c070d4fb 100644 --- a/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java +++ b/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java @@ -43,7 +43,7 @@ import java.util.Arrays; import java.util.EnumSet; import java.util.Iterator; import java.util.List; -import javax.annotation.processing.ProcessingEnvironment; +import java.util.regex.Pattern; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; @@ -51,7 +51,7 @@ import javax.lang.model.type.TypeMirror; public class RegisterStubsGenerator { - public static void generateMethodsNativeStubBind(ProcessingEnvironment env, PrintWriter writer, TypeElement d, boolean generate_error_checks, boolean context_specific) { + public static void generateMethodsNativeStubBind(PrintWriter writer, TypeElement d, boolean generate_error_checks, boolean context_specific) { Iterator it = Utils.getMethods(d).iterator(); while ( it.hasNext() ) { ExecutableElement method = it.next(); @@ -79,8 +79,8 @@ public class RegisterStubsGenerator { writer.println(); } - private static String getTypeSignature(TypeMirror type, boolean add_position_signature) { - SignatureTranslator v = new SignatureTranslator(add_position_signature); + private static String getTypeSignature(TypeMirror type) { + SignatureTranslator v = new SignatureTranslator(); type.accept(v, null); return v.getSignature(); } @@ -101,7 +101,7 @@ public class RegisterStubsGenerator { if ( mode == Mode.BUFFEROBJECT && param.getAnnotation(BufferObject.class) != null ) { signature += "J"; } else { - signature += getTypeSignature(param.asType(), true); + signature += getTypeSignature(param.asType()); } } @@ -114,7 +114,7 @@ public class RegisterStubsGenerator { signature += "J"; } - final String result_type_signature = isNIOBuffer ? "Ljava/nio/ByteBuffer;" : getTypeSignature(result_type, false); + final String result_type_signature = isNIOBuffer ? "Ljava/nio/ByteBuffer;" : getTypeSignature(result_type); if ( cached_result_annotation != null ) { signature += result_type_signature; } @@ -124,6 +124,8 @@ public class RegisterStubsGenerator { return signature; } + private static final Pattern GL_PATTERN = Pattern.compile("gl"); + private static void printMethodNativeStubBind(PrintWriter writer, TypeElement d, ExecutableElement method, Platform platform, Mode mode, boolean has_more, boolean generate_error_checks, boolean context_specific) { writer.print("\t\t{\"" + Utils.getSimpleNativeMethodName(method, generate_error_checks, context_specific)); if ( mode == Mode.BUFFEROBJECT ) { @@ -137,7 +139,7 @@ public class RegisterStubsGenerator { final Alternate alt_annotation = method.getAnnotation(Alternate.class); final String methodName = alt_annotation == null ? method.getSimpleName().toString() : alt_annotation.value(); - String opengl_handle_name = methodName.replaceFirst("gl", platform.getPrefix()); + String opengl_handle_name = GL_PATTERN.matcher(methodName).replaceFirst(platform.getPrefix()); writer.print(", \"" + opengl_handle_name + "\", (void *)&" + methodName + ", " + (method.getAnnotation(Optional.class) == null ? "false" : "true") + "}"); if ( has_more ) { writer.println(","); diff --git a/src/java/org/lwjgl/util/generator/SignatureTranslator.java b/src/java/org/lwjgl/util/generator/SignatureTranslator.java index d72cc931..d8f09e9b 100644 --- a/src/java/org/lwjgl/util/generator/SignatureTranslator.java +++ b/src/java/org/lwjgl/util/generator/SignatureTranslator.java @@ -42,9 +42,11 @@ package org.lwjgl.util.generator; */ import org.lwjgl.PointerBuffer; +import org.lwjgl.PointerWrapper; import java.nio.Buffer; import java.nio.ByteBuffer; +import java.util.regex.Pattern; import javax.lang.model.type.ArrayType; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.NoType; @@ -52,15 +54,14 @@ import javax.lang.model.type.PrimitiveType; import javax.lang.model.util.SimpleTypeVisitor6; class SignatureTranslator extends SimpleTypeVisitor6 { - private final boolean add_position_signature; private final StringBuilder signature = new StringBuilder(); - SignatureTranslator(boolean add_position_signature) { - this.add_position_signature = add_position_signature; - } + SignatureTranslator() {} + + private static final Pattern DOT_PATTERN = Pattern.compile("\\."); private static String getNativeNameFromClassName(String class_name) { - return class_name.replaceAll("\\.", "/"); + return DOT_PATTERN.matcher(class_name).replaceAll("/"); } public String getSignature() { @@ -74,7 +75,7 @@ class SignatureTranslator extends SimpleTypeVisitor6 { signature.append("J"); else if ( Buffer.class.isAssignableFrom(type) ) signature.append("[Ljava/nio/ByteBuffer;"); - else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) ) + else if ( PointerWrapper.class.isAssignableFrom(type) ) signature.append("[L" + getNativeNameFromClassName(type.getName()) + ";"); else throw new RuntimeException(t + " is not allowed"); @@ -84,7 +85,7 @@ class SignatureTranslator extends SimpleTypeVisitor6 { private void visitClassType(DeclaredType t) { Class type = NativeTypeTranslator.getClassFromType(t); - if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) || (Utils.isAddressableType(type) && !String.class.equals(type)) ) + if ( PointerWrapper.class.isAssignableFrom(type) || (Utils.isAddressableType(type) && !String.class.equals(type)) ) signature.append("J"); else { String type_name; @@ -110,7 +111,7 @@ class SignatureTranslator extends SimpleTypeVisitor6 { private void visitInterfaceType(DeclaredType t) { Class type = NativeTypeTranslator.getClassFromType(t); - if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) ) + if ( PointerWrapper.class.isAssignableFrom(type) ) signature.append("J"); else throw new RuntimeException(t + " is not allowed"); diff --git a/src/java/org/lwjgl/util/generator/TypeInfo.java b/src/java/org/lwjgl/util/generator/TypeInfo.java index 230fbf48..db902d28 100644 --- a/src/java/org/lwjgl/util/generator/TypeInfo.java +++ b/src/java/org/lwjgl/util/generator/TypeInfo.java @@ -45,7 +45,6 @@ import org.lwjgl.util.generator.opengl.GLvoid; import java.lang.annotation.Annotation; import java.nio.*; import java.util.*; -import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; @@ -150,7 +149,7 @@ public class TypeInfo { } public static Map getDefaultTypeInfoMap(ExecutableElement method) { - Map map = new HashMap<>(); + Map map = new HashMap(); for ( VariableElement param : method.getParameters() ) { TypeInfo type_info = getDefaultTypeInfo(param.asType()); map.put(param, type_info); @@ -158,18 +157,18 @@ public class TypeInfo { return map; } - private static Collection getTypeInfos(ProcessingEnvironment env, TypeMap type_map, VariableElement param) { + private static Collection getTypeInfos(TypeMap type_map, VariableElement param) { List annotations = param.getAnnotationMirrors(); GLvoid void_annotation = param.getAnnotation(GLvoid.class); - Map types = new HashMap<>(); - Collection multityped_result = new ArrayList<>(); + Map types = new HashMap(); + Collection multityped_result = new ArrayList(); boolean add_default_type = true; for ( AnnotationMirror annotation : annotations ) { NativeType native_type_annotation = NativeTypeTranslator.getAnnotation(annotation, NativeType.class); if ( native_type_annotation != null ) { Class annotation_type = NativeTypeTranslator.getClassFromType(annotation.getAnnotationType()); - /*env.getMessager().printMessage(Diagnostic.Kind.NOTE, "annotation_type " + annotation_type, param, annotation);*/ + /*env.getMessager().printMessage(Diagnostic.Kind.NOTE, "annotation_type " + annotation_type, param, annotation);*/ Signedness signedness = type_map.getSignednessFromType(annotation_type); Class inverse_type = type_map.getInverseType(annotation_type); String auto_type = type_map.getAutoTypeFromAnnotation(annotation); @@ -201,7 +200,7 @@ public class TypeInfo { } if ( add_default_type ) { TypeInfo default_type_info = getDefaultTypeInfo(param.asType()); - Collection result = new ArrayList<>(); + Collection result = new ArrayList(); result.add(default_type_info); return result; } else { @@ -209,19 +208,19 @@ public class TypeInfo { } } - private static Map> getTypeInfoMap(ProcessingEnvironment env, TypeMap type_map, ExecutableElement method) { - Map> map = new HashMap<>(); + private static Map> getTypeInfoMap(TypeMap type_map, ExecutableElement method) { + Map> map = new HashMap>(); for ( VariableElement param : method.getParameters() ) { - Collection types = getTypeInfos(env, type_map, param); + Collection types = getTypeInfos(type_map, param); map.put(param, types); } return map; } - public static Collection> getTypeInfoCrossProduct(ProcessingEnvironment env, TypeMap type_map, ExecutableElement method) { + public static Collection> getTypeInfoCrossProduct(TypeMap type_map, ExecutableElement method) { List parameter_collection = method.getParameters(); - Collection> cross_product = new ArrayList<>(); - getCrossProductRecursive(0, parameter_collection, getTypeInfoMap(env, type_map, method), + Collection> cross_product = new ArrayList>(); + getCrossProductRecursive(0, parameter_collection, getTypeInfoMap(type_map, method), new HashMap(), cross_product); return cross_product; } @@ -238,7 +237,7 @@ public class TypeInfo { Collection typeinfos = typeinfos_map.get(param); if ( typeinfos != null ) { for ( TypeInfo typeinfo : typeinfos ) { - Map instance = new HashMap<>(current_instance); + Map instance = new HashMap(current_instance); instance.put(param, typeinfo); getCrossProductRecursive(index + 1, parameters, typeinfos_map, instance, cross_product); } diff --git a/src/java/org/lwjgl/util/generator/Utils.java b/src/java/org/lwjgl/util/generator/Utils.java index 4bb1e1fe..5be6a7e4 100644 --- a/src/java/org/lwjgl/util/generator/Utils.java +++ b/src/java/org/lwjgl/util/generator/Utils.java @@ -39,6 +39,7 @@ package org.lwjgl.util.generator; * @version $Revision$ $Id$ */ import org.lwjgl.PointerBuffer; +import org.lwjgl.PointerWrapper; import org.lwjgl.util.generator.opengl.GLboolean; import org.lwjgl.util.generator.opengl.GLchar; import org.lwjgl.util.generator.opengl.GLcharARB; @@ -48,6 +49,7 @@ import java.io.PrintWriter; import java.nio.Buffer; import java.nio.ByteBuffer; import java.util.*; +import java.util.regex.Pattern; import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.*; import javax.lang.model.type.TypeKind; @@ -111,8 +113,7 @@ public class Utils { public int compare(AnnotationMirror a1, AnnotationMirror a2) { String n1 = a1.getAnnotationType().toString(); String n2 = a2.getAnnotationType().toString(); - int result = n1.compareTo(n2); - return result; + return n1.compareTo(n2); } public boolean equals(AnnotationMirror a1, AnnotationMirror a2) { @@ -121,7 +122,7 @@ public class Utils { } public static List getSortedAnnotations(List annotations) { - List annotation_list = new ArrayList<>(annotations); + List annotation_list = new ArrayList(annotations); Collections.sort(annotation_list, new AnnotationMirrorComparator()); return annotation_list; } @@ -137,7 +138,7 @@ public class Utils { public static boolean isAddressableType(Class type) { if ( type.isArray() ) { final Class component_type = type.getComponentType(); - return isAddressableTypeImpl(component_type) || org.lwjgl.PointerWrapper.class.isAssignableFrom(component_type); + return isAddressableTypeImpl(component_type) || PointerWrapper.class.isAssignableFrom(component_type); } return isAddressableTypeImpl(type); } @@ -230,7 +231,7 @@ public class Utils { // DISABLED: We always generate indirect methods. (affects OpenAL only at the time of this change) public static boolean isMethodIndirect(boolean generate_error_checks, boolean context_specific, ExecutableElement method) { /* - for (VariableElement param : method.getParameters()) { + for (VariableElement param : method.getParameters()) { if (isAddressableType(param.getType()) || getParameterAutoAnnotation(param) != null || param.getAnnotation(Constant.class) != null) return true; @@ -243,8 +244,10 @@ public class Utils { return true; } + private static final Pattern DOT_PATTERN = Pattern.compile("\\."); + public static String getNativeQualifiedName(String qualified_name) { - return qualified_name.replaceAll("\\.", "_"); + return DOT_PATTERN.matcher(qualified_name).replaceAll("_"); } public static String getQualifiedNativeMethodName(String qualified_class_name, String method_name) { @@ -493,13 +496,11 @@ public class Utils { } public static Collection getFields(TypeElement d) { - Collection fields = ElementFilter.fieldsIn(new HashSet(d.getEnclosedElements())); - return fields; + return ElementFilter.fieldsIn(new HashSet(d.getEnclosedElements())); } public static Collection getMethods(TypeElement d) { - Collection fields = ElementFilter.methodsIn(new HashSet(d.getEnclosedElements())); - return fields; + return ElementFilter.methodsIn(new HashSet(d.getEnclosedElements())); } } diff --git a/src/java/org/lwjgl/util/generator/openal/ALTypeMap.java b/src/java/org/lwjgl/util/generator/openal/ALTypeMap.java index 585d5e3a..9ee14d7f 100644 --- a/src/java/org/lwjgl/util/generator/openal/ALTypeMap.java +++ b/src/java/org/lwjgl/util/generator/openal/ALTypeMap.java @@ -57,7 +57,7 @@ public class ALTypeMap implements TypeMap { private static final Map native_types_to_primitive; static { - native_types_to_primitive = new HashMap<>(); + native_types_to_primitive = new HashMap(); native_types_to_primitive.put(ALboolean.class, TypeKind.BOOLEAN); native_types_to_primitive.put(ALbyte.class, TypeKind.BYTE); native_types_to_primitive.put(ALenum.class, TypeKind.INT); diff --git a/src/java/org/lwjgl/util/generator/opencl/CLGeneratorProcessor.java b/src/java/org/lwjgl/util/generator/opencl/CLGeneratorProcessor.java index c14f3696..c4e1bad0 100644 --- a/src/java/org/lwjgl/util/generator/opencl/CLGeneratorProcessor.java +++ b/src/java/org/lwjgl/util/generator/opencl/CLGeneratorProcessor.java @@ -50,7 +50,7 @@ import javax.lang.model.util.ElementFilter; * @author Spasi */ @SupportedAnnotationTypes({ "*" }) -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedOptions({ "generatechecks", "contextspecific" }) public class CLGeneratorProcessor extends AbstractProcessor { diff --git a/src/java/org/lwjgl/util/generator/opencl/CLTypeMap.java b/src/java/org/lwjgl/util/generator/opencl/CLTypeMap.java index c8b5755b..2f7fedaa 100644 --- a/src/java/org/lwjgl/util/generator/opencl/CLTypeMap.java +++ b/src/java/org/lwjgl/util/generator/opencl/CLTypeMap.java @@ -58,7 +58,7 @@ public class CLTypeMap implements TypeMap { private static final Map native_types_to_primitive; static { - native_types_to_primitive = new HashMap<>(); + native_types_to_primitive = new HashMap(); native_types_to_primitive.put(cl_void.class, TypeKind.BYTE); native_types_to_primitive.put(cl_byte.class, TypeKind.BYTE); native_types_to_primitive.put(cl_char.class, TypeKind.BYTE); diff --git a/src/java/org/lwjgl/util/generator/opengl/GLESGeneratorProcessor.java b/src/java/org/lwjgl/util/generator/opengl/GLESGeneratorProcessor.java index 4bfcb5a8..5e539664 100644 --- a/src/java/org/lwjgl/util/generator/opengl/GLESGeneratorProcessor.java +++ b/src/java/org/lwjgl/util/generator/opengl/GLESGeneratorProcessor.java @@ -50,7 +50,7 @@ import javax.lang.model.util.ElementFilter; * 2010-04-09 23:57:40Z spasi $ */ @SupportedAnnotationTypes({ "*" }) -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedOptions({ "contextspecific", "generatechecks" }) public class GLESGeneratorProcessor extends AbstractProcessor { diff --git a/src/java/org/lwjgl/util/generator/opengl/GLESTypeMap.java b/src/java/org/lwjgl/util/generator/opengl/GLESTypeMap.java index 34dd9bbb..7f5ca3fa 100644 --- a/src/java/org/lwjgl/util/generator/opengl/GLESTypeMap.java +++ b/src/java/org/lwjgl/util/generator/opengl/GLESTypeMap.java @@ -60,7 +60,7 @@ public class GLESTypeMap implements TypeMap { private static final Map, TypeKind> native_types_to_primitive; static { - native_types_to_primitive = new HashMap<>(); + native_types_to_primitive = new HashMap, TypeKind>(); native_types_to_primitive.put(GLbitfield.class, TypeKind.INT); native_types_to_primitive.put(GLclampf.class, TypeKind.FLOAT); native_types_to_primitive.put(GLfloat.class, TypeKind.FLOAT); diff --git a/src/java/org/lwjgl/util/generator/opengl/GLGeneratorProcessor.java b/src/java/org/lwjgl/util/generator/opengl/GLGeneratorProcessor.java index ec404e9e..1581af4d 100644 --- a/src/java/org/lwjgl/util/generator/opengl/GLGeneratorProcessor.java +++ b/src/java/org/lwjgl/util/generator/opengl/GLGeneratorProcessor.java @@ -50,7 +50,7 @@ import javax.lang.model.util.ElementFilter; * 2010-04-09 23:57:40Z spasi $ */ @SupportedAnnotationTypes({ "*" }) -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedOptions({ "generatechecks", "contextspecific" }) public class GLGeneratorProcessor extends AbstractProcessor { diff --git a/src/java/org/lwjgl/util/generator/opengl/GLReferencesGeneratorProcessor.java b/src/java/org/lwjgl/util/generator/opengl/GLReferencesGeneratorProcessor.java index 5bdfb7e0..c27fb170 100644 --- a/src/java/org/lwjgl/util/generator/opengl/GLReferencesGeneratorProcessor.java +++ b/src/java/org/lwjgl/util/generator/opengl/GLReferencesGeneratorProcessor.java @@ -53,7 +53,7 @@ import javax.lang.model.util.ElementFilter; * 2009-09-08 15:07:15Z spasi $ */ @SupportedAnnotationTypes({ "*" }) -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedOptions({ "generatechecks", "contextspecific" }) public class GLReferencesGeneratorProcessor extends AbstractProcessor { diff --git a/src/java/org/lwjgl/util/generator/opengl/GLTypeMap.java b/src/java/org/lwjgl/util/generator/opengl/GLTypeMap.java index b7913a62..db124f4c 100644 --- a/src/java/org/lwjgl/util/generator/opengl/GLTypeMap.java +++ b/src/java/org/lwjgl/util/generator/opengl/GLTypeMap.java @@ -59,7 +59,7 @@ public class GLTypeMap implements TypeMap { private static final Map native_types_to_primitive; static { - native_types_to_primitive = new HashMap<>(); + native_types_to_primitive = new HashMap(); native_types_to_primitive.put(GLbitfield.class, TypeKind.INT); native_types_to_primitive.put(GLcharARB.class, TypeKind.BYTE); native_types_to_primitive.put(GLclampf.class, TypeKind.FLOAT);