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

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

Introduction

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

Prototype

public AccessRestriction(AccessRule accessRule, byte classpathEntryType, String classpathEntryName) 

Source Link

Usage

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

License:Open Source License

/**
 * <p>//from   ww w.  j  av  a2 s .c o  m
 * </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;
}