Example usage for org.eclipse.jdt.internal.compiler.lookup TypeConstants SYNTHETIC_ASSERT_DISABLED

List of usage examples for org.eclipse.jdt.internal.compiler.lookup TypeConstants SYNTHETIC_ASSERT_DISABLED

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.lookup TypeConstants SYNTHETIC_ASSERT_DISABLED.

Prototype

null SYNTHETIC_ASSERT_DISABLED

To view the source code for org.eclipse.jdt.internal.compiler.lookup TypeConstants SYNTHETIC_ASSERT_DISABLED.

Click Source Link

Usage

From source file:org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.java

License:Open Source License

public FieldBinding addSyntheticFieldForAssert(BlockScope blockScope) {
    if (this.synthetics == null)
        this.synthetics = new HashMap[MAX_SYNTHETICS];
    if (this.synthetics[SourceTypeBinding.FIELD_EMUL] == null)
        this.synthetics[SourceTypeBinding.FIELD_EMUL] = new HashMap(5);

    FieldBinding synthField = (FieldBinding) this.synthetics[SourceTypeBinding.FIELD_EMUL]
            .get("assertionEmulation"); //$NON-NLS-1$
    if (synthField == null) {
        synthField = new SyntheticFieldBinding(TypeConstants.SYNTHETIC_ASSERT_DISABLED, TypeBinding.BOOLEAN,
                ClassFileConstants.AccDefault | ClassFileConstants.AccStatic | ClassFileConstants.AccSynthetic
                        | ClassFileConstants.AccFinal,
                this, Constant.NotAConstant, this.synthetics[SourceTypeBinding.FIELD_EMUL].size());
        this.synthetics[SourceTypeBinding.FIELD_EMUL].put("assertionEmulation", synthField); //$NON-NLS-1$
    }//w w  w  . j  a  v  a 2  s  . c  om
    // ensure there is not already such a field defined by the user
    // ensure there is not already such a field defined by the user
    boolean needRecheck;
    int index = 0;
    do {
        needRecheck = false;
        FieldBinding existingField;
        if ((existingField = getField(synthField.name, true /*resolve*/)) != null) {
            TypeDeclaration typeDecl = this.scope.referenceContext;
            int max = (typeDecl.fields == null) ? 0 : typeDecl.fields.length;
            for (int i = 0; i < max; i++) {
                FieldDeclaration fieldDecl = typeDecl.fields[i];
                if (fieldDecl.binding == existingField) {
                    synthField.name = CharOperation.concat(TypeConstants.SYNTHETIC_ASSERT_DISABLED,
                            ("_" + String.valueOf(index++)).toCharArray()); //$NON-NLS-1$
                    needRecheck = true;
                    break;
                }
            }
        }
    } while (needRecheck);
    return synthField;
}