private void renamePackage(
     IPackageFragment pack, IProgressMonitor pm, IPath newPath, String newName)
     throws JavaModelException, CoreException {
   if (!pack.exists())
     return; // happens if empty parent with single subpackage is renamed, see
             // https://bugs.eclipse.org/bugs/show_bug.cgi?id=199045
   pack.rename(newName, false, pm);
   if (fCompilationUnitStamps != null) {
     IPackageFragment newPack =
         (IPackageFragment)
             JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getFolder(newPath));
     if (newPack.exists()) {
       ICompilationUnit[] units = newPack.getCompilationUnits();
       for (int i = 0; i < units.length; i++) {
         IResource resource = units[i].getResource();
         if (resource != null) {
           Long stamp = fCompilationUnitStamps.get(resource);
           if (stamp != null) {
             resource.revertModificationStamp(stamp.longValue());
           }
         }
       }
     }
   }
 }
Ejemplo n.º 2
0
 public ASTReader(IJavaProject iJavaProject, IProgressMonitor monitor) {
   if (monitor != null)
     monitor.beginTask("Parsing selected Java Project", getNumberOfCompilationUnits(iJavaProject));
   systemObject = new SystemObject();
   examinedProject = iJavaProject;
   try {
     IPackageFragmentRoot[] iPackageFragmentRoots = iJavaProject.getPackageFragmentRoots();
     for (IPackageFragmentRoot iPackageFragmentRoot : iPackageFragmentRoots) {
       IJavaElement[] children = iPackageFragmentRoot.getChildren();
       for (IJavaElement child : children) {
         if (child.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
           IPackageFragment iPackageFragment = (IPackageFragment) child;
           ICompilationUnit[] iCompilationUnits = iPackageFragment.getCompilationUnits();
           for (ICompilationUnit iCompilationUnit : iCompilationUnits) {
             if (monitor != null && monitor.isCanceled()) throw new OperationCanceledException();
             systemObject.addClasses(parseAST(iCompilationUnit));
             if (monitor != null) monitor.worked(1);
           }
         }
       }
     }
   } catch (JavaModelException e) {
     e.printStackTrace();
   }
   if (monitor != null) monitor.done();
 }
Ejemplo n.º 3
0
  public static void launchPackageConfiguration(
      IJavaProject ijp, IPackageFragment ipf, String mode) {
    List packageNames = new ArrayList();
    packageNames.add(ipf.getElementName());

    try {
      if (haveGroupsDependency(ipf.getCompilationUnits())) {
        groupDependencyWarning("package " + ipf.getElementName(), null);
      }
    } catch (JavaModelException jmex) {; // this should never happen but who knows
    }

    ILaunchConfigurationWorkingCopy workingCopy =
        createLaunchConfiguration(ijp.getProject(), "package " + ipf.getElementName(), null);

    workingCopy.setAttribute(TestNGLaunchConfigurationConstants.CLASS_TEST_LIST, EMPTY_ARRAY_PARAM);
    workingCopy.setAttribute(
        TestNGLaunchConfigurationConstants.METHOD_TEST_LIST, EMPTY_ARRAY_PARAM);
    workingCopy.setAttribute(TestNGLaunchConfigurationConstants.PACKAGE_TEST_LIST, packageNames);
    workingCopy.setAttribute(TestNGLaunchConfigurationConstants.TYPE, LaunchType.PACKAGE.ordinal());
    workingCopy.setAttribute(
        TestNGLaunchConfigurationConstants.ALL_METHODS_LIST,
        ConfigurationHelper.toClassMethodsMap(new HashMap()));
    workingCopy.setAttribute(TestNGLaunchConfigurationConstants.PARAMS, solveParameters(ipf));

    runConfig(workingCopy, mode);
  }
Ejemplo n.º 4
0
 public static void collectCompilationUnits(
     List<ICompilationUnit> result, IPackageFragmentRoot root) throws JavaModelException {
   IJavaElement[] elements = root.getChildren();
   for (int j = 0; j < elements.length; ++j) {
     IPackageFragment p = (IPackageFragment) elements[j];
     result.addAll(Arrays.asList(p.getCompilationUnits()));
   }
 }
 @Override
 protected Change createUndoChange(long stampToRestore) throws CoreException {
   IPackageFragment pack = getPackage();
   if (pack == null) return new NullChange();
   Map<IResource, Long> stamps = new HashMap<>();
   if (!fRenameSubpackages) {
     addStamps(stamps, pack.getCompilationUnits());
   } else {
     IPackageFragment[] allPackages = JavaElementUtil.getPackageAndSubpackages(pack);
     for (int i = 0; i < allPackages.length; i++) {
       IPackageFragment currentPackage = allPackages[i];
       addStamps(stamps, currentPackage.getCompilationUnits());
     }
   }
   return new RenamePackageChange(
       createNewPath(), getNewName(), getOldName(), stampToRestore, stamps, fRenameSubpackages);
   // Note: This reverse change only works if the renamePackage change did
   // not merge the source package into an existing target.
 }
Ejemplo n.º 6
0
 /** @since 2.5 */
 protected void convertAddedPackageFragment(
     IJavaElementDelta delta, List<IResourceDescription.Delta> result) {
   IPackageFragment fragment = (IPackageFragment) delta.getElement();
   try {
     for (ICompilationUnit cu : fragment.getCompilationUnits()) {
       convertNewTypes(cu, result);
     }
   } catch (JavaModelException e) {
     if (LOGGER.isDebugEnabled()) LOGGER.debug(e, e);
   }
 }
Ejemplo n.º 7
0
 private void collectPrivateMethods(IPackageFragment packageFragment, Set<IMethod> collector) {
   if (!packageFragment.isReadOnly()) {
     try {
       for (ICompilationUnit cu : packageFragment.getCompilationUnits()) {
         collectPrivateMethods(cu, collector);
       }
     } catch (JavaModelException jamox) {
       trace(jamox, packageFragment.getElementName());
     }
   }
 }
Ejemplo n.º 8
0
 public void buildFinished(IJavaProject project) {
   try {
     StringBuilder sb = new StringBuilder();
     PreProcessing(project.getElementName());
     IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(Constants.BUNDLE_NAME);
     String fileName =
         prefs.get("LTiEFileName", "Empty String") + project.getElementName() + ".MTD";
     sb.append("<COMPILE_INSTANCE>");
     Calendar c = Calendar.getInstance();
     SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yyyy 'at' HH:mm:ss z");
     sb.append(
         "<TIME UTC=\"" + c.getTimeInMillis() + "\">" + format.format(c.getTime()) + "</TIME>");
     IPackageFragment[] packages = project.getPackageFragments();
     sb.append("<PACKAGES>");
     for (IPackageFragment aPackage : packages) {
       if (aPackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
         String packageName =
             aPackage.getElementName().isEmpty() ? "default" : aPackage.getElementName();
         Constants.writer.println("Package Fragment Name: " + packageName);
         sb.append("<PACKAGE>");
         sb.append("<NAME>" + packageName + "</NAME>");
         sb.append("<FILES>");
         for (ICompilationUnit unit : aPackage.getCompilationUnits()) {
           sb.append("<FILE>");
           sb.append("<NAME>" + unit.getElementName() + "</NAME>");
           printFileInternals(unit, sb);
           printFilesProblems(unit, sb);
           sb.append("<SOURCE>" + StringEscapeUtils.escapeHtml4(unit.getSource()) + "</SOURCE>");
           sb.append("</FILE>");
         }
         ProcessUMLFiles(aPackage.getNonJavaResources(), sb);
         sb.append("</FILES>");
         sb.append("</PACKAGE>");
       }
     }
     sb.append("</PACKAGES>");
     Object[] nonJavaResources = project.getNonJavaResources();
     if (nonJavaResources != null && nonJavaResources.length > 0) {
       sb.append("<FILES>");
       ProcessUMLFiles(nonJavaResources, sb);
       sb.append("</FILES>");
     }
     sb.append("</COMPILE_INSTANCE>");
     PrintWriter out = new PrintWriter(new FileWriter(fileName, true));
     out.write(XMLFormatter.format(sb.toString()));
     out.close();
   } catch (Exception e) {
     e.printStackTrace(Constants.writer);
   }
 }
 private void isValid(RefactoringStatus result, IPackageFragment pack, IProgressMonitor pm)
     throws JavaModelException {
   ICompilationUnit[] units = pack.getCompilationUnits();
   pm.beginTask("", units.length); // $NON-NLS-1$
   for (int i = 0; i < units.length; i++) {
     pm.subTask(
         Messages.format(
             RefactoringCoreMessages.RenamePackageChange_checking_change,
             JavaElementLabels.getElementLabel(pack, JavaElementLabels.ALL_DEFAULT)));
     checkIfModifiable(
         result, units[i].getResource(), VALIDATE_NOT_READ_ONLY | VALIDATE_NOT_DIRTY);
     pm.worked(1);
   }
   pm.done();
 }
Ejemplo n.º 10
0
 public static int getNumberOfCompilationUnits(IJavaProject iJavaProject) {
   int numberOfCompilationUnits = 0;
   try {
     IPackageFragmentRoot[] iPackageFragmentRoots = iJavaProject.getPackageFragmentRoots();
     for (IPackageFragmentRoot iPackageFragmentRoot : iPackageFragmentRoots) {
       IJavaElement[] children = iPackageFragmentRoot.getChildren();
       for (IJavaElement child : children) {
         if (child.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
           IPackageFragment iPackageFragment = (IPackageFragment) child;
           ICompilationUnit[] iCompilationUnits = iPackageFragment.getCompilationUnits();
           numberOfCompilationUnits += iCompilationUnits.length;
         }
       }
     }
   } catch (JavaModelException e) {
     e.printStackTrace();
   }
   return numberOfCompilationUnits;
 }
Ejemplo n.º 11
0
  @Test
  public void test0d() {

    try {
      IWorkspace workspace = ResourcesPlugin.getWorkspace();
      IWorkspaceRoot root = workspace.getRoot();
      IProject project = root.getProject("TestProject");
      IJavaProject javaProject = JavaCore.create(project);

      IPackageFragment mypackage =
          javaProject.findPackageFragment(new Path("/TestProject/src/be/ac/ua/test/pack"));
      if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
        ICompilationUnit cu = mypackage.getCompilationUnits()[0];
        IType[] types = cu.getAllTypes();
        ClassRecorder recorder = new ClassRecorder(types[0]);

        Field uniqueNameField = ClassRecorder.class.getDeclaredField("uniqueName");
        uniqueNameField.setAccessible(true);
        String fieldValue = (String) uniqueNameField.get(recorder);
        assertEquals(fieldValue, packname + "." + classname);

        /*Field parentField = ClassRecorder.class.getDeclaredField("parent");
        parentField.setAccessible(true);
        FamixEntity fieldValue2 = (FamixEntity)parentField.get(recorder);
        assertEquals(packname, fieldValue2.getUniqueName());*/
      }
    } catch (JavaModelException e) {
      e.printStackTrace();
      fail("Unexpected exception");
    } catch (SecurityException e) {
      e.printStackTrace();
      fail("Unexpected exception");
    } catch (IllegalArgumentException e) {
      e.printStackTrace();
      fail("Unexpected exception");
    } catch (NoSuchFieldException e) {
      e.printStackTrace();
      fail("Unexpected exception");
    } catch (IllegalAccessException e) {
      e.printStackTrace();
      fail("Unexpected exception");
    }
  }
  private void process() {
    try {
      IPreferenceStore preferenceStore = Activator.getDefault().getPreferenceStore();

      String basepackage =
          preferenceStore.getString(JsfcaPerferenceConstants.PROP_KEY_BASE_PACKAGE);
      String regEx = preferenceStore.getString(JsfcaPerferenceConstants.PROP_KEY_FILE_PATTERN);

      if (basepackage == null || basepackage.isEmpty()) {
        return;
      }

      if (regEx == null || regEx.isEmpty()) {
        return;
      }

      Pattern classPattern = Pattern.compile(regEx);

      IPackageFragment[] packageFragments = javaProject.getPackageFragments();
      for (IPackageFragment packageFragment : packageFragments) {
        if (packageFragment.getElementName().startsWith(basepackage.toLowerCase())) {
          if (packageFragment.containsJavaResources()) {
            ICompilationUnit[] compilationUnits = packageFragment.getCompilationUnits();
            for (ICompilationUnit compUnit : compilationUnits) {
              IType primaryType = compUnit.findPrimaryType();
              if (primaryType != null
                  && classPattern.matcher(primaryType.getElementName()).matches()) {
                createSymbol(primaryType);
              }
            }
          }
        }
      }

    } catch (JavaModelException e) {
      e.printStackTrace();
    }
  }
 private void collectCompilationUnits(IPackageFragment pack, Collection result)
     throws JavaModelException {
   result.addAll(Arrays.asList(pack.getCompilationUnits()));
 }