added -J option to preserve unmodified files in preexisting jarfile
[org.ibex.tool.git] / src / org / eclipse / jdt / internal / compiler / lookup / TagBits.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2004 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  * 
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package org.eclipse.jdt.internal.compiler.lookup;
12
13 import org.eclipse.jdt.internal.compiler.ast.ASTNode;
14
15 public interface TagBits {
16     
17         // Tag bits in the tagBits int of every TypeBinding
18         long IsArrayType = ASTNode.Bit1;
19         long IsBaseType = ASTNode.Bit2;
20         long IsNestedType = ASTNode.Bit3;
21         long IsMemberType = ASTNode.Bit4;
22         long MemberTypeMask = IsNestedType | IsMemberType;
23         long IsLocalType = ASTNode.Bit5;
24         long LocalTypeMask = IsNestedType | IsLocalType;
25         long IsAnonymousType = ASTNode.Bit6;
26         long AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
27         long IsBinaryBinding = ASTNode.Bit7;
28         
29         // for the type cycle hierarchy check used by ClassScope
30         long BeginHierarchyCheck = ASTNode.Bit9;  // type
31         long EndHierarchyCheck = ASTNode.Bit10; // type
32         long HasParameterAnnotations = ASTNode.Bit11; // method
33         
34         // test bit to see if default abstract methods were computed
35         long KnowsDefaultAbstractMethods = ASTNode.Bit11;
36
37         // Reusable bit currently used by Scopes
38         long InterfaceVisited = ASTNode.Bit12;
39
40         // test bits to see if parts of binary types are faulted
41         long AreFieldsComplete = ASTNode.Bit13;
42         long AreMethodsComplete = ASTNode.Bit14;
43
44         // test bit to avoid asking a type for a member type (includes inherited member types)
45         long HasNoMemberTypes = ASTNode.Bit15;
46
47         // test bit to identify if the type's hierarchy is inconsistent
48         long HierarchyHasProblems = ASTNode.Bit16;
49
50         // set for parameterized type NOT of the form X<?,?>
51         long IsBoundParameterizedType = ASTNode.Bit24; 
52
53         // used by BinaryTypeBinding
54         long HasUnresolvedTypeVariables = ASTNode.Bit25;
55         long HasUnresolvedSuperclass = ASTNode.Bit26;
56         long HasUnresolvedSuperinterfaces = ASTNode.Bit27;
57         long HasUnresolvedEnclosingType = ASTNode.Bit28;
58         long HasUnresolvedMemberTypes = ASTNode.Bit29;
59
60         long HasTypeVariable = ASTNode.Bit30; // set either for type variables (direct) or parameterized types indirectly referencing type variables
61         long HasDirectWildcard = ASTNode.Bit31; // set for parameterized types directly referencing wildcards
62         
63         // for the annotation cycle hierarchy check used by ClassScope
64         long BeginAnnotationCheck = ASTNode.Bit32L;
65         long EndAnnotationCheck = ASTNode.Bit33L;
66         
67         // standard annotations
68         // 9-bits for targets
69         long AnnotationResolved = ASTNode.Bit34L;
70         long AnnotationTarget = ASTNode.Bit35L; // @Target({}) only sets this bit
71         long AnnotationForType = ASTNode.Bit36L;
72         long AnnotationForField = ASTNode.Bit37L;
73         long AnnotationForMethod = ASTNode.Bit38L;
74         long AnnotationForParameter = ASTNode.Bit39L;
75         long AnnotationForConstructor = ASTNode.Bit40L;
76         long AnnotationForLocalVariable = ASTNode.Bit41L;
77         long AnnotationForAnnotationType = ASTNode.Bit42L;
78         long AnnotationForPackage = ASTNode.Bit43L;
79         long AnnotationTargetMASK = AnnotationTarget
80                                 | AnnotationForType | AnnotationForField
81                                 | AnnotationForMethod | AnnotationForParameter
82                                 | AnnotationForConstructor | AnnotationForLocalVariable
83                                 | AnnotationForAnnotationType | AnnotationForPackage;
84         // 2-bits for retention (should check (tagBits & RetentionMask) == RuntimeRetention
85         long AnnotationSourceRetention = ASTNode.Bit44L;
86         long AnnotationClassRetention = ASTNode.Bit45L;
87         long AnnotationRuntimeRetention = AnnotationSourceRetention | AnnotationClassRetention;
88         long AnnotationRetentionMASK = AnnotationSourceRetention | AnnotationClassRetention | AnnotationRuntimeRetention;
89         // marker annotations
90         long AnnotationDeprecated = ASTNode.Bit46L;
91         long AnnotationDocumented = ASTNode.Bit47L;
92         long AnnotationInherited = ASTNode.Bit48L;
93         long AnnotationOverride = ASTNode.Bit49L;
94         long AnnotationSuppressWarnings = ASTNode.Bit50L;
95 }