Package org.eclipse.ltk.core.refactoring

Examples of org.eclipse.ltk.core.refactoring.CompositeChange


    }

    public Change createChange(IProgressMonitor pm) throws ModelException {
      IProjectFragment[] roots = getProjectFragments();
      pm.beginTask("", roots.length); //$NON-NLS-1$
      CompositeChange composite = new DynamicValidationStateChange(
          RefactoringCoreMessages.ReorgPolicy_move_source_folder);
      composite.markAsSynthetic();
      IScriptProject destination = getDestinationScriptProject();
      Assert.isNotNull(destination);
      for (int i = 0; i < roots.length; i++) {
        composite.add(createChange(roots[i], destination));
        pm.worked(1);
      }
      pm.done();
      return composite;
    }
View Full Code Here


    }

    public Change createChange(IProgressMonitor pm) throws ModelException {
      IScriptFolder[] fragments = getPackages();
      pm.beginTask("", fragments.length); //$NON-NLS-1$
      CompositeChange result = new DynamicValidationStateChange(
          RefactoringCoreMessages.ReorgPolicy_move_package);
      result.markAsSynthetic();
      IProjectFragment root = getDestinationAsProjectFragment();
      for (int i = 0; i < fragments.length; i++) {
        result.add(createChange(fragments[i], root));
        pm.worked(1);
        if (pm.isCanceled())
          throw new OperationCanceledException();
      }
      pm.done();
View Full Code Here

    private Change createReferenceUpdatingMoveChange(IProgressMonitor pm)
        throws ModelException {
      pm.beginTask("", 2 + (fUpdateQualifiedNames ? 1 : 0)); //$NON-NLS-1$
      try {
        CompositeChange composite = new DynamicValidationStateChange(
            RefactoringCoreMessages.ReorgPolicy_move);
        composite.markAsSynthetic();
        // XX workaround for bug 13558
        // <workaround>
        if (fChangeManager == null) {
          fChangeManager = createChangeManager(
              new SubProgressMonitor(pm, 1),
              new RefactoringStatus()); // TODO: non-CU matches
          // silently dropped
          RefactoringStatus status = Checks.validateModifiesFiles(
              getAllModifiedFiles(), null);
          if (status.hasFatalError())
            fChangeManager = new TextChangeManager();
        }
        // </workaround>

        composite
            .merge(new CompositeChange(
                RefactoringCoreMessages.MoveRefactoring_reorganize_elements,
                fChangeManager.getAllChanges()));

        Change fileMove = createSimpleMoveChange(new SubProgressMonitor(
            pm, 1));
        if (fileMove instanceof CompositeChange) {
          composite.merge(((CompositeChange) fileMove));
        } else {
          composite.add(fileMove);
        }
        return composite;
      } finally {
        pm.done();
      }
View Full Code Here

      IFile[] file = getFiles();
      IFolder[] folders = getFolders();
      ISourceModule[] cus = getCus();
      pm.beginTask("", cus.length + file.length + folders.length); //$NON-NLS-1$
      NewNameProposer nameProposer = new NewNameProposer();
      CompositeChange composite = new DynamicValidationStateChange(
          RefactoringCoreMessages.ReorgPolicy_copy);
      composite.markAsSynthetic();
      for (int i = 0; i < cus.length; i++) {
        composite.add(createChange(cus[i], nameProposer, copyQueries));
        pm.worked(1);
      }
      if (pm.isCanceled())
        throw new OperationCanceledException();
      for (int i = 0; i < file.length; i++) {
        composite.add(createChange(file[i], nameProposer, copyQueries));
        pm.worked(1);
      }
      if (pm.isCanceled())
        throw new OperationCanceledException();
      for (int i = 0; i < folders.length; i++) {
        composite.add(createChange(folders[i], nameProposer,
            copyQueries));
        pm.worked(1);
      }
      pm.done();
      return composite;
View Full Code Here

    public Change createChange(IProgressMonitor pm,
        INewNameQueries copyQueries) {
      NewNameProposer nameProposer = new NewNameProposer();
      IProjectFragment[] roots = getProjectFragments();
      pm.beginTask("", roots.length); //$NON-NLS-1$
      CompositeChange composite = new DynamicValidationStateChange(
          RefactoringCoreMessages.ReorgPolicy_copy_source_folder);
      composite.markAsSynthetic();
      IScriptProject destination = getDestinationScriptProject();
      Assert.isNotNull(destination);
      for (int i = 0; i < roots.length; i++) {
        composite.add(createChange(roots[i], destination, nameProposer,
            copyQueries));
        pm.worked(1);
      }
      pm.done();
      return composite;
View Full Code Here

        return status;
    }

    @Override
    public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
        CompositeChange changes = null;
        String content;
        changes = new CompositeChange("Fix " + currentName + " field on DRL files");
        IFile file = getSourceFieldIFile();
        String typeName = sourceField.getParent().getElementName();

        Pattern fieldPattern = Pattern.compile(FIELD_NAME.replaceAll("FIELD_NAME", currentName));
        Pattern typePattern = Pattern.compile(VARIABLE_ASSIGNED.replace("TYPE", typeName));

        if (file!=null) {
            RenameFieldProcessor renameFieldProcessor = (RenameFieldProcessor)processor;
            for (IFile drlFile : drlFiles) {

                if ((content = FileUtil.readFile(drlFile))==null)
                    return null;

                TextFileChange change = new TextFileChange(drlFile.getName(), drlFile);
                MultiTextEdit mte = new MultiTextEdit();
                change.setEdit(mte);

                // rename the field name
                Matcher matcher = fieldPattern.matcher(content);
                while (matcher.find()) {
                  if (isFieldInRightType(content, typeName, matcher.start())) {
                    ReplaceEdit replace = new ReplaceEdit(matcher.start(), currentName.length(), newName);
                    mte.addChild(replace);
                  }
                }

                // search all the variables of the type to replace the getters/setters
                matcher = typePattern.matcher(content);
                while (matcher.find()) {
                    if (matcher.group().length() > 0) {
                        String variableNameAssigned = matcher.group();
                        if (renameFieldProcessor.getRenameGetter()) {
                            String newGetterName = renameFieldProcessor.getNewGetterName();
                            String currentGetterName = renameFieldProcessor.getGetter().getElementName();
                            String regexp = GETTER_NAME.replace("VARIABLE_NAME", variableNameAssigned).replace("CURRENT_GETTER_NAME", currentGetterName);
                            createFieldRenameChanges(mte, content, regexp, currentGetterName, newGetterName);
                        }
                        if (renameFieldProcessor.getRenameSetter()) {
                            String newSetterName = renameFieldProcessor.getNewSetterName();
                            String currentSetterName = renameFieldProcessor.getSetter().getElementName();
                            String regexp = SETTER_NAME.replace("VARIABLE_NAME", variableNameAssigned).replace("CURRENT_SETTER_NAME", currentSetterName);
                            createFieldRenameChanges(mte, content, regexp, currentSetterName, newSetterName);
                        }
                    }
                }

                if (change.getEdit().getChildrenSize() > 0)
                    changes.add(change);

            }
        }
        return (changes.getChildren().length > 0)?changes:null;
    }
View Full Code Here

    IResource resource = getBreakpointContainer();
    IMarker[] markers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER,
        true, IResource.DEPTH_INFINITE);
    gatherChanges(markers, changes, getArguments().getNewName());
    if (changes.size() > 1) {
      return new CompositeChange(
          RefactoringMessages.BreakpointRenameParticipant_1,
          (Change[]) changes.toArray(new Change[changes.size()]));
    } else if (changes.size() == 1) {
      return (Change) changes.get(0);
    }
View Full Code Here

      OperationCanceledException {
    List changes = new ArrayList();
    IResource resource = getBreakpointContainer();
    gatherChanges(resource, changes, getArguments().getNewName());
    if (changes.size() > 1) {
      return new CompositeChange("", (Change[]) changes //$NON-NLS-1$
          .toArray(new Change[changes.size()]));
    } else if (changes.size() == 1) {
      return (Change) changes.get(0);
    }
    return null;
View Full Code Here

    IResource resource = root.getResource();
    if (resource != null && resource.isLinked()) {
      // XXX using this code is a workaround for jcore bug 31998
      // jcore cannot handle linked stuff
      // normally, we should always create DeleteProjectFragmentChange
      CompositeChange composite = new DynamicValidationStateChange(
          RefactoringCoreMessages.DeleteRefactoring_delete_package_fragment_root);

      composite.add(new DeleteFromBuildpathChange(root));
      Assert.isTrue(!Checks.isBuildpathDelete(root));// checked in
      // preconditions
      composite.add(createDeleteChange(resource));

      return composite;
    } else {
      Assert.isTrue(!root.isExternal());
      // TODO remove the query argument
View Full Code Here

        pm.done();
      }
    }

    private Change createSimpleMoveChange(IProgressMonitor pm) {
      CompositeChange result = new DynamicValidationStateChange(
          RefactoringCoreMessages.ReorgPolicy_move);
      result.markAsSynthetic();
      IFile[] files = getFiles();
      IFolder[] folders = getFolders();
      ISourceModule[] cus = getCus();
      pm.beginTask("", files.length + folders.length + cus.length); //$NON-NLS-1$
      for (int i = 0; i < files.length; i++) {
        result.add(createChange(files[i]));
        pm.worked(1);
      }
      if (pm.isCanceled())
        throw new OperationCanceledException();
      for (int i = 0; i < folders.length; i++) {
        result.add(createChange(folders[i]));
        pm.worked(1);
      }
      if (pm.isCanceled())
        throw new OperationCanceledException();
      for (int i = 0; i < cus.length; i++) {
        result.add(createChange(cus[i]));
        pm.worked(1);
      }
      pm.done();
      return result;
    }
View Full Code Here

TOP

Related Classes of org.eclipse.ltk.core.refactoring.CompositeChange

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.