Example usage for org.eclipse.jdt.core Flags AccVolatile

List of usage examples for org.eclipse.jdt.core Flags AccVolatile

Introduction

In this page you can find the example usage for org.eclipse.jdt.core Flags AccVolatile.

Prototype

int AccVolatile

To view the source code for org.eclipse.jdt.core Flags AccVolatile.

Click Source Link

Document

Volatile property flag.

Usage

From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.AJSerialVersionHashOperation.java

License:Open Source License

private static Long calculateSerialVersionId(IClassFileReader cfReader) throws IOException {
    // implementing algorithm specified on http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/class.html#4100

    ByteArrayOutputStream os = new ByteArrayOutputStream();
    DataOutputStream doos = new DataOutputStream(os);
    doos.writeUTF(getClassName(cfReader.getClassName())); // class name
    int mod = getClassModifiers(cfReader);
    //      System.out.println(Integer.toHexString(mod) + ' ' + Flags.toString(mod));

    int classModifiers = mod & (Flags.AccPublic | Flags.AccFinal | Flags.AccInterface | Flags.AccAbstract);

    doos.writeInt(classModifiers); // class modifiers
    char[][] interfaces = getSortedInterfacesNames(cfReader);
    for (int i = 0; i < interfaces.length; i++) {
        doos.writeUTF(getClassName(interfaces[i]));
    }/*www.  j ava 2 s  .c o m*/
    IFieldInfo[] sortedFields = getSortedFields(cfReader);
    for (int i = 0; i < sortedFields.length; i++) {
        IFieldInfo curr = sortedFields[i];
        int flags = curr.getAccessFlags();
        if (!Flags.isPrivate(flags) || (!Flags.isStatic(flags) && !Flags.isTransient(flags))) {
            doos.writeUTF(new String(curr.getName()));
            doos.writeInt(flags & (Flags.AccPublic | Flags.AccPrivate | Flags.AccProtected | Flags.AccStatic
                    | Flags.AccFinal | Flags.AccVolatile | Flags.AccTransient)); // field modifiers
            doos.writeUTF(new String(curr.getDescriptor()));
        }
    }
    if (hasStaticClassInitializer(cfReader)) {
        doos.writeUTF(STATIC_CLASS_INITIALIZER);
        doos.writeInt(Flags.AccStatic);
        doos.writeUTF("()V"); //$NON-NLS-1$
    }
    IMethodInfo[] sortedMethods = getSortedMethods(cfReader);
    for (int i = 0; i < sortedMethods.length; i++) {
        IMethodInfo curr = sortedMethods[i];
        int flags = curr.getAccessFlags();
        if (!Flags.isPrivate(flags) && !curr.isClinit()) {
            doos.writeUTF(new String(curr.getName()));
            doos.writeInt(flags & (Flags.AccPublic | Flags.AccPrivate | Flags.AccProtected | Flags.AccStatic
                    | Flags.AccFinal | Flags.AccSynchronized | Flags.AccNative | Flags.AccAbstract
                    | Flags.AccStrictfp)); // method modifiers
            doos.writeUTF(getClassName(curr.getDescriptor()));
        }
    }
    doos.flush();
    return computeHash(os.toByteArray());
}

From source file:org.eclipse.emf.test.tools.merger.facade.FacadeAPITest.java

License:Open Source License

@Test
public void testFacadeFlags() {
    assertEquals(Flags.AccAbstract, FacadeFlags.ABSTRACT);
    assertEquals(Flags.AccAnnotation, FacadeFlags.ANNOTATION);
    assertEquals(Flags.AccBridge, FacadeFlags.BRIDGE);
    assertEquals(Flags.AccDefault, FacadeFlags.DEFAULT);
    assertEquals(Flags.AccDeprecated, FacadeFlags.DEPRECATED);
    assertEquals(Flags.AccEnum, FacadeFlags.ENUM);
    assertEquals(Flags.AccFinal, FacadeFlags.FINAL);
    assertEquals(Flags.AccInterface, FacadeFlags.INTERFACE);
    assertEquals(Flags.AccNative, FacadeFlags.NATIVE);
    assertEquals(Flags.AccPrivate, FacadeFlags.PRIVATE);
    assertEquals(Flags.AccProtected, FacadeFlags.PROTECTED);
    assertEquals(Flags.AccPublic, FacadeFlags.PUBLIC);
    assertEquals(Flags.AccStatic, FacadeFlags.STATIC);
    assertEquals(Flags.AccStrictfp, FacadeFlags.STRICTFP);
    assertEquals(Flags.AccSuper, FacadeFlags.SUPER);
    assertEquals(Flags.AccSynchronized, FacadeFlags.SYNCHRONIZED);
    assertEquals(Flags.AccSynthetic, FacadeFlags.SYNTHETIC);
    assertEquals(Flags.AccTransient, FacadeFlags.TRANSIENT);
    assertEquals(Flags.AccVarargs, FacadeFlags.VARARGS);
    assertEquals(Flags.AccVolatile, FacadeFlags.VOLATILE);
}