Example usage for org.eclipse.jdt.internal.compiler.classfmt ClassFileConstants JDK_DEFERRED

List of usage examples for org.eclipse.jdt.internal.compiler.classfmt ClassFileConstants JDK_DEFERRED

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.classfmt ClassFileConstants JDK_DEFERRED.

Prototype

long JDK_DEFERRED

To view the source code for org.eclipse.jdt.internal.compiler.classfmt ClassFileConstants JDK_DEFERRED.

Click Source Link

Usage

From source file:org.eclipse.jdt.internal.compiler.parser.Parser.java

License:Open Source License

private static void buildFileForCompliance(String file, int length, String[] tokens) {

    byte[] result = new byte[length * 8];

    for (int i = 0; i < tokens.length; i = i + 3) {
        if ("2".equals(tokens[i])) { //$NON-NLS-1$
            int index = Integer.parseInt(tokens[i + 1]);
            String token = tokens[i + 2].trim();
            long compliance = 0;
            if ("1.4".equals(token)) { //$NON-NLS-1$
                compliance = ClassFileConstants.JDK1_4;
            } else if ("1.5".equals(token)) { //$NON-NLS-1$
                compliance = ClassFileConstants.JDK1_5;
            } else if ("recovery".equals(token)) { //$NON-NLS-1$
                compliance = ClassFileConstants.JDK_DEFERRED;
            }//from  w w  w. ja va 2s .com

            int j = index * 8;
            result[j] = (byte) (compliance >>> 56);
            result[j + 1] = (byte) (compliance >>> 48);
            result[j + 2] = (byte) (compliance >>> 40);
            result[j + 3] = (byte) (compliance >>> 32);
            result[j + 4] = (byte) (compliance >>> 24);
            result[j + 5] = (byte) (compliance >>> 16);
            result[j + 6] = (byte) (compliance >>> 8);
            result[j + 7] = (byte) (compliance);
        }
    }

    buildFileForTable(file, result);
}