public class org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<T extends org.eclipse.jdt.internal.core.nd.INdStruct> extends org.eclipse.jdt.internal.core.nd.field.BaseField implements org.eclipse.jdt.internal.core.nd.field.IDestructableField, org.eclipse.jdt.internal.core.nd.field.IRefCountedField
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jdt.internal.core.nd.field.FieldManyToOne
super_class: org.eclipse.jdt.internal.core.nd.field.BaseField
{
public static final org.eclipse.jdt.internal.core.nd.field.FieldPointer TARGET;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.eclipse.jdt.internal.core.nd.field.FieldInt BACKPOINTER_INDEX;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
org.eclipse.jdt.internal.core.nd.field.StructDef<T> targetType;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0000)
Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
final org.eclipse.jdt.internal.core.nd.field.StructDef<? extends org.eclipse.jdt.internal.core.nd.INdStruct> localType;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0010) ACC_FINAL
Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;
org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<?> backPointer;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
flags: (0x0000)
Signature: Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<*>;
private static final org.eclipse.jdt.internal.core.nd.field.StructDef<org.eclipse.jdt.internal.core.nd.field.FieldManyToOne> type;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;>;
public final boolean pointsToOwner;
descriptor: Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag putTag;
descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag destructTag;
descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean permitsNull;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
invokestatic org.eclipse.jdt.internal.core.nd.field.StructDef.createAbstract:(Ljava/lang/Class;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
putstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
1: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addPointer:()Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
putstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
2: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addInt:()Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
putstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.BACKPOINTER_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
3: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.done:()V
4: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(org.eclipse.jdt.internal.core.nd.field.StructDef<? extends org.eclipse.jdt.internal.core.nd.INdStruct>, org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<?>, );
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial org.eclipse.jdt.internal.core.nd.field.BaseField.<init>:()V
1: aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.permitsNull:Z
2: aload 0
aload 1
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.localType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
3: aload 0
iload 3
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.pointsToOwner:Z
4: aload 2
ifnull 12
5: aload 2
getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
ifnull 9
aload 2
getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
aload 0
if_acmpeq 9
6: new java.lang.IllegalArgumentException
dup
7: ldc "Attempted to construct a FieldNodePointer referring to a backpointer list that is already in use by another field"
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldManyToOne org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.field.FieldOneToMany int
StackMap stack:
aload 2
aload 1
putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
10: aload 0
aload 2
getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.localType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
11: aload 2
aload 0
putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
12: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
13: aload 0
new java.lang.StringBuilder
dup
ldc "field "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getNumFields:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc " in struct "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.setFieldName:(Ljava/lang/String;)V
16: aload 0
new java.lang.StringBuilder
dup
ldc "Writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.getFieldName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.putTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
17: aload 0
new java.lang.StringBuilder
dup
ldc "Destructing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.getFieldName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 19 1 localType Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;
0 19 2 backPointer Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<*>;
0 19 3 pointsToOwner Z
Signature: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<*>;Z)V
MethodParameters:
Name Flags
localType
backPointer
pointsToOwner
public static <T extends org.eclipse.jdt.internal.core.nd.INdStruct, B extends org.eclipse.jdt.internal.core.nd.INdStruct> org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<T> createNonNull(org.eclipse.jdt.internal.core.nd.field.StructDef<B>, org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<B>);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
astore 2
start local 2 1: aload 2
iconst_0
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.permitsNull:Z
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 builder Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;
0 3 1 forwardPointer Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;
1 3 2 result Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;B::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
MethodParameters:
Name Flags
builder
forwardPointer
public static <T extends org.eclipse.jdt.internal.core.nd.INdStruct, B extends org.eclipse.jdt.internal.core.nd.INdStruct> org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<T> create(org.eclipse.jdt.internal.core.nd.field.StructDef<B>, org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<B>);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new org.eclipse.jdt.internal.core.nd.field.FieldManyToOne
dup
aload 0
aload 1
iconst_0
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;Z)V
astore 2
start local 2 1: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDestructableField:(Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 builder Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;
0 4 1 forwardPointer Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;
1 4 2 result Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;B::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
MethodParameters:
Name Flags
builder
forwardPointer
public static <T extends org.eclipse.jdt.internal.core.nd.INdStruct, B extends org.eclipse.jdt.internal.core.nd.INdStruct> org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<T> createOwner(org.eclipse.jdt.internal.core.nd.field.StructDef<B>, org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<B>);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc Lorg/eclipse/jdt/internal/core/nd/NdNode;
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 5
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " can't be the owner of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " because the latter isn't a subclass of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc Lorg/eclipse/jdt/internal/core/nd/NdNode;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
new org.eclipse.jdt.internal.core.nd.field.FieldManyToOne
dup
aload 0
aload 1
iconst_1
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;Z)V
astore 2
start local 2 6: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
7: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDestructableField:(Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
8: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addOwnerField:(Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;)V
9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 builder Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;
0 10 1 forwardPointer Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;
6 10 2 result Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;B::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TB;>;)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
MethodParameters:
Name Flags
builder
forwardPointer
public org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<T> permitNull(boolean);
descriptor: (Z)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.permitsNull:Z
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 2 1 permitted Z
Signature: (Z)Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
MethodParameters:
Name Flags
permitted
public T get(org.eclipse.jdt.internal.core.nd.Nd, );
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Lorg/eclipse/jdt/internal/core/nd/INdStruct;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 1
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.getAddress:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokestatic org.eclipse.jdt.internal.core.nd.NdNode.load:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/StructDef;)Lorg/eclipse/jdt/internal/core/nd/INdStruct;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 1 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 1 2 address J
Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)TT;
MethodParameters:
Name Flags
nd
address
public long getAddress(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
lload 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
ladd
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getRecPtr:(J)J
lstore 4
start local 4 1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.permitsNull:Z
ifne 6
lload 4
lconst_0
lcmp
ifne 6
2: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.describeProblem:()Lorg/eclipse/jdt/internal/core/nd/IndexExceptionBuilder;
3: aload 0
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.IndexExceptionBuilder.addProblemAddress:(Lorg/eclipse/jdt/internal/core/nd/field/IField;J)Lorg/eclipse/jdt/internal/core/nd/IndexExceptionBuilder;
4: ldc "Database contained a null in a non-null field"
invokevirtual org.eclipse.jdt.internal.core.nd.IndexExceptionBuilder.build:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/IndexException;
5: athrow
6: StackMap locals: long
StackMap stack:
lload 4
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 7 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 7 2 address J
1 7 4 result J
MethodParameters:
Name Flags
nd
address
public void put(org.eclipse.jdt.internal.core.nd.Nd, long, );
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/INdStruct;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 4
ifnull 3
1: aload 0
aload 1
lload 2
aload 4
invokeinterface org.eclipse.jdt.internal.core.nd.INdStruct.getAddress:()J
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
2: goto 7
StackMap locals:
StackMap stack:
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.permitsNull:Z
ifeq 6
4: aload 0
aload 1
lload 2
lconst_0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Attempted to write a null into a non-null field"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 8 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 8 2 address J
0 8 4 value TT;
Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;JTT;)V
MethodParameters:
Name Flags
nd
address
value
public void put(org.eclipse.jdt.internal.core.nd.Nd, long, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
astore 6
start local 6 1: aload 6
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.putTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.start:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
2: lload 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
ladd
lstore 7
start local 7 3: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
ifnonnull 7
4: new java.lang.IllegalStateException
dup
5: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " must be associated with a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: org.eclipse.jdt.internal.core.nd.db.Database long
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 7
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
lstore 9
start local 9 8: lload 9
lload 4
lcmp
ifne 11
9: aload 6
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.putTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
10: return
11: StackMap locals: long
StackMap stack:
aload 0
aload 1
lload 2
lload 9
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.detachFromOldTarget:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
12: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 7
lload 4
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
13: lload 4
lconst_0
lcmp
ifeq 16
14: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.BACKPOINTER_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
aload 1
lload 7
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
aload 1
lload 4
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.add:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)I
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldInt.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
15: goto 22
16: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.pointsToOwner:Z
ifeq 22
17: aload 1
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.scheduleDeletion:(J)V
end local 9 end local 7 18: goto 22
StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldManyToOne org.eclipse.jdt.internal.core.nd.Nd long long org.eclipse.jdt.internal.core.nd.db.Database
StackMap stack: java.lang.Throwable
19: astore 11
20: aload 6
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.putTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
21: aload 11
athrow
22: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.putTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
23: return
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 24 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 24 2 address J
0 24 4 newTargetAddress J
1 24 6 db Lorg/eclipse/jdt/internal/core/nd/db/Database;
3 18 7 fieldStart J
8 18 9 oldTargetAddress J
Exception table:
from to target type
2 9 19 any
11 19 19 any
MethodParameters:
Name Flags
nd
address
newTargetAddress
protected void detachFromOldTarget(org.eclipse.jdt.internal.core.nd.Nd, long, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
ladd
lstore 6
start local 6 1: lload 4
lconst_0
lcmp
ifeq 10
2: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.BACKPOINTER_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
aload 1
lload 6
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldInt.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
istore 8
start local 8 3: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
aload 1
lload 4
iload 8
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.remove:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
4: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.isNdNode:()Z
ifeq 10
5: getstatic org.eclipse.jdt.internal.core.nd.NdNode.NODE_TYPE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
aload 1
lload 4
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
istore 9
start local 9 6: aload 1
iload 9
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getTypeFactory:(S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
astore 10
start local 10 7: aload 10
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.getDeletionSemantics:()Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.REFCOUNTED:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
if_acmpne 10
8: aload 10
aload 1
lload 4
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.isReadyForDeletion:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
ifeq 10
9: aload 1
lload 4
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.scheduleDeletion:(J)V
end local 10 end local 9 end local 8 10: StackMap locals: long
StackMap stack:
return
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 11 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 11 2 address J
0 11 4 oldTargetAddress J
1 11 6 fieldStart J
3 10 8 oldIndex I
6 10 9 targetTypeId S
7 10 10 typeFactory Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<+Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
MethodParameters:
Name Flags
nd
address
oldTargetAddress
void adjustIndex(org.eclipse.jdt.internal.core.nd.Nd, long, int);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.BACKPOINTER_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
aload 1
lload 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
ladd
iload 4
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldInt.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
1: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 2 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 2 2 address J
0 2 4 index I
MethodParameters:
Name Flags
nd
address
index
public void destruct(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
astore 4
start local 4 1: aload 4
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.start:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
2: lload 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
ladd
lstore 5
start local 5 3: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 5
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
lstore 7
start local 7 4: aload 0
aload 1
lload 2
lload 7
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.detachFromOldTarget:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
5: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 5
lconst_0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
end local 7 end local 5 6: goto 10
StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldManyToOne org.eclipse.jdt.internal.core.nd.Nd long org.eclipse.jdt.internal.core.nd.db.Database
StackMap stack: java.lang.Throwable
7: astore 9
8: aload 4
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
9: aload 9
athrow
10: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
11: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 12 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 12 2 address J
1 12 4 db Lorg/eclipse/jdt/internal/core/nd/db/Database;
3 6 5 fieldStart J
4 6 7 oldTargetAddress J
Exception table:
from to target type
2 7 7 any
MethodParameters:
Name Flags
nd
address
void clearedByBackPointer(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
lload 2
ladd
lstore 4
start local 4 1: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 4
lconst_0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
2: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.BACKPOINTER_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
aload 1
lload 4
iconst_0
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldInt.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
3: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 4 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 4 2 address J
1 4 4 fieldStart J
MethodParameters:
Name Flags
nd
address
public int getRecordSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
public boolean hasReferences(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.offset:I
i2l
lload 2
ladd
lstore 4
start local 4 1: getstatic org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.TARGET:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
aload 1
lload 4
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
lstore 6
start local 6 2: lload 6
lconst_0
lcmp
ifeq 3
iconst_1
ireturn
StackMap locals: long long
StackMap stack:
3: iconst_0
ireturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TT;>;
0 4 1 nd Lorg/eclipse/jdt/internal/core/nd/Nd;
0 4 2 address J
1 4 4 fieldStart J
2 4 6 target J
MethodParameters:
Name Flags
nd
address
}
Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>Lorg/eclipse/jdt/internal/core/nd/field/BaseField;Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;
SourceFile: "FieldManyToOne.java"
InnerClasses:
public Tag = org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag of org.eclipse.jdt.internal.core.nd.db.ModificationLog
public final DeletionSemantics = org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics of org.eclipse.jdt.internal.core.nd.field.StructDef