Package org.aspectj.org.eclipse.jdt.core

Examples of org.aspectj.org.eclipse.jdt.core.IJavaModel


 
      int varLength = this.variableNames.length;
     
      // gather classpath information for updating
      final HashMap affectedProjectClasspaths = new HashMap(5);
      IJavaModel model = getJavaModel();
   
      // filter out unmodified variables
      int discardCount = 0;
      for (int i = 0; i < varLength; i++){
        String variableName = this.variableNames[i];
        IPath oldPath = manager.variableGet(variableName); // if reentering will provide previous session value
        if (oldPath == JavaModelManager.VARIABLE_INITIALIZATION_IN_PROGRESS) {
          oldPath = null//33695 - cannot filter out restored variable, must update affected project to reset cached CP
        }
        if (oldPath != null && oldPath.equals(this.variablePaths[i])){
          this.variableNames[i] = null;
          discardCount++;
        }
      }
      if (discardCount > 0){
        if (discardCount == varLength) return;
        int changedLength = varLength - discardCount;
        String[] changedVariableNames = new String[changedLength];
        IPath[] changedVariablePaths = new IPath[changedLength];
        for (int i = 0, index = 0; i < varLength; i++){
          if (this.variableNames[i] != null){
            changedVariableNames[index] = this.variableNames[i];
            changedVariablePaths[index] = this.variablePaths[i];
            index++;
          }
        }
        this.variableNames = changedVariableNames;
        this.variablePaths = changedVariablePaths;
        varLength = changedLength;
      }
     
      if (isCanceled())
        return;
 
      IJavaProject[] projects = model.getJavaProjects();
      nextProject : for (int i = 0, projectLength = projects.length; i < projectLength; i++){
        JavaProject project = (JavaProject) projects[i];
           
        // check to see if any of the modified variables is present on the classpath
        IClasspathEntry[] classpath = project.getRawClasspath();
View Full Code Here


  IPath projectPath = project.getFullPath();
  String projectPathString = projectPath.toString();
  this.addEnclosingProjectOrJar(projectPath);

  IClasspathEntry[] entries = javaProject.getResolvedClasspath();
  IJavaModel model = javaProject.getJavaModel();
  JavaModelManager.PerProjectInfo perProjectInfo = javaProject.getPerProjectInfo();
  for (int i = 0, length = entries.length; i < length; i++) {
    IClasspathEntry entry = entries[i];
    AccessRuleSet access = null;
    ClasspathEntry cpEntry = (ClasspathEntry) entry;
    if (referringEntry != null) {
      // Add only exported entries.
      // Source folder are implicitly exported.
      if (!entry.isExported() && entry.getEntryKind() != IClasspathEntry.CPE_SOURCE) continue;
      cpEntry = cpEntry.combineWith((ClasspathEntry)referringEntry);
//        cpEntry = ((ClasspathEntry)referringEntry).combineWith(cpEntry);
    }
    access = cpEntry.getAccessRuleSet();
    switch (entry.getEntryKind()) {
      case IClasspathEntry.CPE_LIBRARY:
        IClasspathEntry rawEntry = null;
        Map rootPathToRawEntries = perProjectInfo.rootPathToRawEntries;
        if (rootPathToRawEntries != null) {
          rawEntry = (IClasspathEntry) rootPathToRawEntries.get(entry.getPath());
        }
        if (rawEntry == null) break;
        switch (rawEntry.getEntryKind()) {
          case IClasspathEntry.CPE_LIBRARY:
          case IClasspathEntry.CPE_VARIABLE:
            if ((includeMask & APPLICATION_LIBRARIES) != 0) {
              IPath path = entry.getPath();
              if (pathToAdd == null || pathToAdd.equals(path)) {
                String pathToString = path.getDevice() == null ? path.toString() : path.toOSString();
                add(projectPath.toString(), "", pathToString, false/*not a package*/, access); //$NON-NLS-1$
                addEnclosingProjectOrJar(path);
              }
            }
            break;
          case IClasspathEntry.CPE_CONTAINER:
            IClasspathContainer container = JavaCore.getClasspathContainer(rawEntry.getPath(), javaProject);
            if (container == null) break;
            if ((container.getKind() == IClasspathContainer.K_APPLICATION && (includeMask & APPLICATION_LIBRARIES) != 0)
                || (includeMask & SYSTEM_LIBRARIES) != 0) {
              IPath path = entry.getPath();
              if (pathToAdd == null || pathToAdd.equals(path)) {
                String pathToString = path.getDevice() == null ? path.toString() : path.toOSString();
                add(projectPath.toString(), "", pathToString, false/*not a package*/, access); //$NON-NLS-1$
                addEnclosingProjectOrJar(path);
              }
            }
            break;
        }
        break;
      case IClasspathEntry.CPE_PROJECT:
        if ((includeMask & REFERENCED_PROJECTS) != 0) {
          IPath path = entry.getPath();
          if (pathToAdd == null || pathToAdd.equals(path)) {
            add((JavaProject) model.getJavaProject(entry.getPath().lastSegment()), null, includeMask, visitedProjects, cpEntry);
          }
        }
        break;
      case IClasspathEntry.CPE_SOURCE:
        if ((includeMask & SOURCES) != 0) {
View Full Code Here

    IClasspathEntry[] focusEntries = null;
    if (isPolymorphicSearch) {
      JavaProject focusProject = focus instanceof JarPackageFragmentRoot ? (JavaProject) focus.getParent() : (JavaProject) focus;
      focusEntries = focusProject.getExpandedClasspath();
    }
    IJavaModel model = focus.getJavaModel();
    IJavaProject project = getJavaProject(projectOrJarPath, model);
    if (project != null)
      return canSeeFocus(focus, (JavaProject) project, focusEntries);

    // projectOrJarPath is a jar
    // it can see the focus only if it is on the classpath of a project that can see the focus
    IJavaProject[] allProjects = model.getJavaProjects();
    for (int i = 0, length = allProjects.length; i < length; i++) {
      JavaProject otherProject = (JavaProject) allProjects[i];
      IClasspathEntry entry = otherProject.getClasspathEntryFor(projectOrJarPath);
      if (entry != null
          && entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
View Full Code Here

      IClasspathEntry[] focusEntries = null;
      if (this.pattern instanceof MethodPattern) { // should consider polymorphic search for method patterns
        JavaProject focusProject = focus instanceof JarPackageFragmentRoot ? (JavaProject) focus.getParent() : (JavaProject) focus;
        focusEntries = focusProject.getExpandedClasspath();
      }
      IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel();
      for (int i = 0; i < length; i++) {
        IPath path = projectsAndJars[i];
        JavaProject project = (JavaProject) getJavaProject(path, model);
        if (project != null) {
          visitedProjects.add(project);
          if (canSeeFocus(focus, project, focusEntries)) {
            locations.add(manager.computeIndexLocation(path));
            projectsCanSeeFocus[projectIndex++] = project;
          }
        } else {
          jarsToCheck.add(path);
        }
      }
      for (int i = 0; i < projectIndex && jarsToCheck.elementSize > 0; i++) {
        IClasspathEntry[] entries = projectsCanSeeFocus[i].getResolvedClasspath();
        for (int j = entries.length; --j >= 0;) {
          IClasspathEntry entry = entries[j];
          if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
            IPath path = entry.getPath();
            if (jarsToCheck.includes(path)) {
              locations.add(manager.computeIndexLocation(entry.getPath()));
              jarsToCheck.remove(path);
            }
          }
        }
      }
      // jar files can be included in the search scope without including one of the projects that references them, so scan all projects that have not been visited
      if (jarsToCheck.elementSize > 0) {
        IJavaProject[] allProjects = model.getJavaProjects();
        for (int i = 0, l = allProjects.length; i < l && jarsToCheck.elementSize > 0; i++) {
          JavaProject project = (JavaProject) allProjects[i];
          if (!visitedProjects.includes(project)) {
            IClasspathEntry[] entries = project.getResolvedClasspath();
            for (int j = entries.length; --j >= 0;) {
View Full Code Here

TOP

Related Classes of org.aspectj.org.eclipse.jdt.core.IJavaModel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.