/*******************************************************************************
* Copyright (c) 2000, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.classfmt;
import org.eclipse.jdt.internal.compiler.ast.ASTNode;
public interface ClassFileConstants {
int AccDefault= 0;
/*
* Modifiers
*/
int AccPublic= 0x0001;
int AccPrivate= 0x0002;
int AccProtected= 0x0004;
int AccStatic= 0x0008;
int AccFinal= 0x0010;
int AccSynchronized= 0x0020;
int AccVolatile= 0x0040;
int AccBridge= 0x0040;
int AccTransient= 0x0080;
int AccVarargs= 0x0080;
int AccNative= 0x0100;
int AccInterface= 0x0200;
int AccAbstract= 0x0400;
int AccStrictfp= 0x0800;
int AccSynthetic= 0x1000;
int AccAnnotation= 0x2000;
int AccEnum= 0x4000;
/**
* Other VM flags.
*/
int AccSuper= 0x0020;
/**
* Extra flags for types and members attributes.
*/
int AccAnnotationDefault= ASTNode.Bit18; // indicate presence of an attribute "DefaultValue" (annotation method)
int AccDeprecated= ASTNode.Bit21; // indicate presence of an attribute "Deprecated"
int Utf8Tag= 1;
int IntegerTag= 3;
int FloatTag= 4;
int LongTag= 5;
int DoubleTag= 6;
int ClassTag= 7;
int StringTag= 8;
int FieldRefTag= 9;
int MethodRefTag= 10;
int InterfaceMethodRefTag= 11;
int NameAndTypeTag= 12;
int ConstantMethodRefFixedSize= 5;
int ConstantClassFixedSize= 3;
int ConstantDoubleFixedSize= 9;
int ConstantFieldRefFixedSize= 5;
int ConstantFloatFixedSize= 5;
int ConstantIntegerFixedSize= 5;
int ConstantInterfaceMethodRefFixedSize= 5;
int ConstantLongFixedSize= 9;
int ConstantStringFixedSize= 3;
int ConstantUtf8FixedSize= 3;
int ConstantNameAndTypeFixedSize= 5;
int MAJOR_VERSION_1_1= 45;
int MAJOR_VERSION_1_2= 46;
int MAJOR_VERSION_1_3= 47;
int MAJOR_VERSION_1_4= 48;
int MAJOR_VERSION_1_5= 49;
int MAJOR_VERSION_1_6= 50;
int MAJOR_VERSION_1_7= 51;
int MINOR_VERSION_0= 0;
int MINOR_VERSION_1= 1;
int MINOR_VERSION_2= 2;
int MINOR_VERSION_3= 3;
int MINOR_VERSION_4= 4;
// JDK 1.1 -> 1.7, comparable value allowing to check both major/minor version at once 1.4.1 > 1.4.0
// 16 unsigned bits for major, then 16 bits for minor
long JDK1_1= ((long)ClassFileConstants.MAJOR_VERSION_1_1 << 16) + ClassFileConstants.MINOR_VERSION_3; // 1.1. is 45.3
long JDK1_2= ((long)ClassFileConstants.MAJOR_VERSION_1_2 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK1_3= ((long)ClassFileConstants.MAJOR_VERSION_1_3 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK1_4= ((long)ClassFileConstants.MAJOR_VERSION_1_4 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK1_5= ((long)ClassFileConstants.MAJOR_VERSION_1_5 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK1_6= ((long)ClassFileConstants.MAJOR_VERSION_1_6 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK1_7= ((long)ClassFileConstants.MAJOR_VERSION_1_7 << 16) + ClassFileConstants.MINOR_VERSION_0;
/*
* cldc1.1 is 45.3, but we modify it to be different from JDK1_1.
* In the code gen, we will generate the same target value as JDK1_1
*/
long CLDC_1_1= ((long)ClassFileConstants.MAJOR_VERSION_1_1 << 16) + ClassFileConstants.MINOR_VERSION_4;
// jdk level used to denote future releases: optional behavior is not enabled for now, but may become so. In order to enable these,
// search for references to this constant, and change it to one of the official JDT constants above.
long JDK_DEFERRED= Long.MAX_VALUE;
int INT_ARRAY= 10;
int BYTE_ARRAY= 8;
int BOOLEAN_ARRAY= 4;
int SHORT_ARRAY= 9;
int CHAR_ARRAY= 5;
int LONG_ARRAY= 11;
int FLOAT_ARRAY= 6;
int DOUBLE_ARRAY= 7;
// Debug attributes
int ATTR_SOURCE= 0x1; // SourceFileAttribute
int ATTR_LINES= 0x2; // LineNumberAttribute
int ATTR_VARS= 0x4; // LocalVariableTableAttribute
int ATTR_STACK_MAP_TABLE= 0x8; // Stack map table attribute
int ATTR_STACK_MAP= 0x10; // Stack map attribute: cldc
}