Example usage for org.eclipse.jdt.internal.compiler.env AccessRule AccessRule

List of usage examples for org.eclipse.jdt.internal.compiler.env AccessRule AccessRule

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.env AccessRule AccessRule.

Prototype

public AccessRule(char[] pattern, int problemId) 

Source Link

Usage

From source file:org.ant4eclipse.lib.jdt.ecj.internal.tools.loader.FilteringClassFileLoader.java

License:Open Source License

/**
 * <p>/* w w w.  jav  a 2s  .c  om*/
 * </p>
 * 
 * @param referableType
 * @return
 */
private ReferableType setAccessRestrictions(ReferableType referableType, ClassName className) {

    //
    if (referableType == null) {
        return referableType;
    }

    // try 'shortcut'
    if (this._containedPackages != null && this._containedPackages.contains(className.getPackageName())) {
        return referableType;
    }

    //
    String classFileName = className.asClassFileName();

    //
    for (String includePattern : this._includes) {
        if (classFileName.matches(includePattern)) {
            return referableType;
        }
    }

    //
    for (String exludePattern : this._excludes) {
        if (classFileName.matches(exludePattern)) {

            if (referableType instanceof DefaultReferableType) {

                AccessRestriction accessRestriction = new AccessRestriction(
                        new AccessRule("**".toCharArray(), IProblem.ForbiddenReference),
                        referableType.getLibraryType(), referableType.getLibraryLocation());

                ((DefaultReferableType) referableType).setAccessRestriction(accessRestriction);
            }
            return referableType;
        }
    }

    return referableType;
}