Java Code Examples for org.eclipse.jdt.core.compiler.IProblem#ForbiddenReference
The following examples show how to use
org.eclipse.jdt.core.compiler.IProblem#ForbiddenReference .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ClasspathEntry.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private void encodeAccessRule(AccessRule accessRule, XMLWriter writer, boolean indent, boolean newLine) { HashMap parameters = new HashMap(); parameters.put(TAG_PATTERN, new String(accessRule.pattern)); switch (accessRule.getProblemId()) { case IProblem.ForbiddenReference: parameters.put(TAG_KIND, TAG_NON_ACCESSIBLE); break; case IProblem.DiscouragedReference: parameters.put(TAG_KIND, TAG_DISCOURAGED); break; default: parameters.put(TAG_KIND, TAG_ACCESSIBLE); break; } if (accessRule.ignoreIfBetter()) parameters.put(TAG_IGNORE_IF_BETTER, "true"); //$NON-NLS-1$ writer.printTag(TAG_ACCESS_RULE, parameters, indent, newLine, true); }
Example 2
Source File: AccessRuleSet.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Select the first access rule which is violated when accessing a given type, * or null if no 'non accessible' access rule applies. * @param targetTypeFilePath the target type file path, formed as: * "org/eclipse/jdt/core/JavaCore" * @return the first access restriction that applies if any, null else */ public AccessRestriction getViolatedRestriction(char[] targetTypeFilePath) { for (int i = 0, length = this.accessRules.length; i < length; i++) { AccessRule accessRule = this.accessRules[i]; if (CharOperation.pathMatch(accessRule.pattern, targetTypeFilePath, true/*case sensitive*/, '/')) { switch (accessRule.getProblemId()) { case IProblem.ForbiddenReference: case IProblem.DiscouragedReference: return new AccessRestriction(accessRule, this.classpathEntryType, this.classpathEntryName); default: return null; } } } return null; }
Example 3
Source File: AccessRule.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("pattern="); //$NON-NLS-1$ buffer.append(this.pattern); switch (getProblemId()) { case IProblem.ForbiddenReference: buffer.append(" (NON ACCESSIBLE"); //$NON-NLS-1$ break; case IProblem.DiscouragedReference: buffer.append(" (DISCOURAGED"); //$NON-NLS-1$ break; default: buffer.append(" (ACCESSIBLE"); //$NON-NLS-1$ break; } if (ignoreIfBetter()) buffer.append(" | IGNORE IF BETTER"); //$NON-NLS-1$ buffer.append(')'); return buffer.toString(); }
Example 4
Source File: ClasspathAccessRule.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private static int toProblemId(int kind) { boolean ignoreIfBetter = (kind & IAccessRule.IGNORE_IF_BETTER) != 0; switch (kind & ~IAccessRule.IGNORE_IF_BETTER) { case K_NON_ACCESSIBLE: return ignoreIfBetter ? IProblem.ForbiddenReference | AccessRule.IgnoreIfBetter : IProblem.ForbiddenReference; case K_DISCOURAGED: return ignoreIfBetter ? IProblem.DiscouragedReference | AccessRule.IgnoreIfBetter : IProblem.DiscouragedReference; default: return ignoreIfBetter ? AccessRule.IgnoreIfBetter : 0; } }
Example 5
Source File: ClasspathAccessRule.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public int getKind() { switch (getProblemId()) { case IProblem.ForbiddenReference: return K_NON_ACCESSIBLE; case IProblem.DiscouragedReference: return K_DISCOURAGED; default: return K_ACCESSIBLE; } }
Example 6
Source File: DependencyClasspathEntry.java From takari-lifecycle with Eclipse Public License 1.0 | 5 votes |
protected AccessRestriction getAccessRestriction(String packageName) { if (exportedPackages != null && !exportedPackages.contains(packageName)) { AccessRule rule = new AccessRule(null /* pattern */, IProblem.ForbiddenReference, true /* keep looking for accessible type */); return new AccessRestriction(rule, AccessRestriction.COMMAND_LINE, getEntryName()); } return null; }
Example 7
Source File: EclipseFileManager.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
@SuppressWarnings({"rawtypes", "unchecked"}) protected void addNewEntry(ArrayList paths, String currentClasspathName, ArrayList currentRuleSpecs, String customEncoding, String destPath, boolean isSourceOnly, boolean rejectDestinationPathOnJars) { int rulesSpecsSize = currentRuleSpecs.size(); AccessRuleSet accessRuleSet = null; if (rulesSpecsSize != 0) { AccessRule[] accessRules = new AccessRule[currentRuleSpecs.size()]; boolean rulesOK = true; Iterator i = currentRuleSpecs.iterator(); int j = 0; while (i.hasNext()) { String ruleSpec = (String) i.next(); char key = ruleSpec.charAt(0); String pattern = ruleSpec.substring(1); if (pattern.length() > 0) { switch (key) { case '+': accessRules[j++] = new AccessRule(pattern .toCharArray(), 0); break; case '~': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.DiscouragedReference); break; case '-': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference); break; case '?': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference, true/*keep looking for accessible type*/); break; default: rulesOK = false; } } else { rulesOK = false; } } if (rulesOK) { accessRuleSet = new AccessRuleSet(accessRules, AccessRestriction.COMMAND_LINE, currentClasspathName); } else { return; } } if (Main.NONE.equals(destPath)) { destPath = Main.NONE; // keep == comparison valid } if (rejectDestinationPathOnJars && destPath != null && (currentClasspathName.endsWith(".jar") || //$NON-NLS-1$ currentClasspathName.endsWith(".zip"))) { //$NON-NLS-1$ throw new IllegalArgumentException( this.bind("configure.unexpectedDestinationPathEntryFile", //$NON-NLS-1$ currentClasspathName)); } FileSystem.Classpath currentClasspath = FileSystem.getClasspath( currentClasspathName, customEncoding, isSourceOnly, accessRuleSet, destPath); if (currentClasspath != null) { paths.add(currentClasspath); } }
Example 8
Source File: EclipseFileManager.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
@SuppressWarnings({"rawtypes", "unchecked"}) protected void addNewEntry(ArrayList paths, String currentClasspathName, ArrayList currentRuleSpecs, String customEncoding, String destPath, boolean isSourceOnly, boolean rejectDestinationPathOnJars) { int rulesSpecsSize = currentRuleSpecs.size(); AccessRuleSet accessRuleSet = null; if (rulesSpecsSize != 0) { AccessRule[] accessRules = new AccessRule[currentRuleSpecs.size()]; boolean rulesOK = true; Iterator i = currentRuleSpecs.iterator(); int j = 0; while (i.hasNext()) { String ruleSpec = (String) i.next(); char key = ruleSpec.charAt(0); String pattern = ruleSpec.substring(1); if (pattern.length() > 0) { switch (key) { case '+': accessRules[j++] = new AccessRule(pattern .toCharArray(), 0); break; case '~': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.DiscouragedReference); break; case '-': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference); break; case '?': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference, true/*keep looking for accessible type*/); break; default: rulesOK = false; } } else { rulesOK = false; } } if (rulesOK) { accessRuleSet = new AccessRuleSet(accessRules, AccessRestriction.COMMAND_LINE, currentClasspathName); } else { return; } } if (Main.NONE.equals(destPath)) { destPath = Main.NONE; // keep == comparison valid } if (rejectDestinationPathOnJars && destPath != null && (currentClasspathName.endsWith(".jar") || //$NON-NLS-1$ currentClasspathName.endsWith(".zip"))) { //$NON-NLS-1$ throw new IllegalArgumentException( this.bind("configure.unexpectedDestinationPathEntryFile", //$NON-NLS-1$ currentClasspathName)); } FileSystem.Classpath currentClasspath = FileSystem.getClasspath( currentClasspathName, customEncoding, isSourceOnly, accessRuleSet, destPath); if (currentClasspath != null) { paths.add(currentClasspath); } }
Example 9
Source File: TypeNameMatchRequestorWrapper.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path, AccessRestriction access) { // Get type try { IType type = null; if (this.handleFactory != null) { Openable openable = this.handleFactory.createOpenable(path, this.scope); if (openable == null) return; switch (openable.getElementType()) { case IJavaElement.COMPILATION_UNIT: ICompilationUnit cu = (ICompilationUnit) openable; if (enclosingTypeNames != null && enclosingTypeNames.length > 0) { type = cu.getType(new String(enclosingTypeNames[0])); for (int j=1, l=enclosingTypeNames.length; j<l; j++) { type = type.getType(new String(enclosingTypeNames[j])); } type = type.getType(new String(simpleTypeName)); } else { type = cu.getType(new String(simpleTypeName)); } break; case IJavaElement.CLASS_FILE: type = ((IClassFile)openable).getType(); break; } } else { int separatorIndex= path.indexOf(IJavaSearchScope.JAR_FILE_ENTRY_SEPARATOR); type = separatorIndex == -1 ? createTypeFromPath(path, new String(simpleTypeName), enclosingTypeNames) : createTypeFromJar(path, separatorIndex); } // Accept match if the type has been found if (type != null) { // hierarchy scopes require one more check: if (!(this.scope instanceof HierarchyScope) || ((HierarchyScope)this.scope).enclosesFineGrained(type)) { // Create the match final JavaSearchTypeNameMatch match = new JavaSearchTypeNameMatch(type, modifiers); // Update match accessibility if(access != null) { switch (access.getProblemId()) { case IProblem.ForbiddenReference: match.setAccessibility(IAccessRule.K_NON_ACCESSIBLE); break; case IProblem.DiscouragedReference: match.setAccessibility(IAccessRule.K_DISCOURAGED); break; } } // Accept match this.requestor.acceptTypeNameMatch(match); } } } catch (JavaModelException e) { // skip } }
Example 10
Source File: Main.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
protected void addNewEntry(ArrayList paths, String currentClasspathName, ArrayList currentRuleSpecs, String customEncoding, String destPath, boolean isSourceOnly, boolean rejectDestinationPathOnJars) { int rulesSpecsSize = currentRuleSpecs.size(); AccessRuleSet accessRuleSet = null; if (rulesSpecsSize != 0) { AccessRule[] accessRules = new AccessRule[currentRuleSpecs.size()]; boolean rulesOK = true; Iterator i = currentRuleSpecs.iterator(); int j = 0; while (i.hasNext()) { String ruleSpec = (String) i.next(); char key = ruleSpec.charAt(0); String pattern = ruleSpec.substring(1); if (pattern.length() > 0) { switch (key) { case '+': accessRules[j++] = new AccessRule(pattern .toCharArray(), 0); break; case '~': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.DiscouragedReference); break; case '-': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference); break; case '?': accessRules[j++] = new AccessRule(pattern .toCharArray(), IProblem.ForbiddenReference, true/*keep looking for accessible type*/); break; default: rulesOK = false; } } else { rulesOK = false; } } if (rulesOK) { accessRuleSet = new AccessRuleSet(accessRules, AccessRestriction.COMMAND_LINE, currentClasspathName); } else { if (currentClasspathName.length() != 0) { // we go on anyway addPendingErrors(this.bind("configure.incorrectClasspath", currentClasspathName));//$NON-NLS-1$ } return; } } if (NONE.equals(destPath)) { destPath = NONE; // keep == comparison valid } if (rejectDestinationPathOnJars && destPath != null && Util.isPotentialZipArchive(currentClasspathName)) { throw new IllegalArgumentException( this.bind("configure.unexpectedDestinationPathEntryFile", //$NON-NLS-1$ currentClasspathName)); } FileSystem.Classpath currentClasspath = FileSystem.getClasspath( currentClasspathName, customEncoding, isSourceOnly, accessRuleSet, destPath); if (currentClasspath != null) { paths.add(currentClasspath); } else if (currentClasspathName.length() != 0) { // we go on anyway addPendingErrors(this.bind("configure.incorrectClasspath", currentClasspathName));//$NON-NLS-1$ } }
Example 11
Source File: AccessRestrictionClasspathEntry.java From takari-lifecycle with Eclipse Public License 1.0 | 4 votes |
public static AccessRestrictionClasspathEntry forbidAll(DependencyClasspathEntry entry) { AccessRule accessRule = new AccessRule(null /* pattern */, IProblem.ForbiddenReference, true /* keep looking for accessible type */); AccessRestriction accessRestriction = new AccessRestriction(accessRule, AccessRestriction.COMMAND_LINE, entry.getEntryName()); return new AccessRestrictionClasspathEntry(entry, accessRestriction); }