Class SourceFileChange

java.lang.Object
org.eclipse.ltk.core.refactoring.Change
org.eclipse.ltk.core.refactoring.TextEditBasedChange
org.eclipse.handly.refactoring.SourceFileChange
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable

public class SourceFileChange extends org.eclipse.ltk.core.refactoring.TextEditBasedChange
A TextEditBasedChange that operates on a ISourceFile.
  • Constructor Summary

    Constructors
    Constructor
    Description
    SourceFileChange(String name, ISourceFile sourceFile)
    Creates a source file change that initially contains only an empty root edit.
    SourceFileChange(String name, ISourceFile sourceFile, org.eclipse.text.edits.TextEdit edit)
    Creates a source file change with the given edit tree.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addEdit(org.eclipse.text.edits.TextEdit edit)
    Adds the given edit by auto inserting it into the change's edit tree.
    void
    addEdits(org.eclipse.text.edits.TextEdit[] edits)
    Adds the given edits by auto inserting them into the change's edit tree.
    void
    addGroupedEdits(org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup group)
    Inserts the edits of the given group into the change's edit tree and then adds the group itself to the change.
    void
    addGroupedEdits(org.eclipse.text.edits.TextEditGroup group)
    Inserts the edits of the given group into the change's edit tree and then adds the group itself to the change.
     
    Returns the snapshot on which the change's edit tree is based, or null if the snapshot is unknown.
    getCurrentContent(org.eclipse.core.runtime.IProgressMonitor pm)
     
    getCurrentContent(org.eclipse.jface.text.IRegion region, boolean expandRegionToFullLine, int surroundingLines, org.eclipse.core.runtime.IProgressMonitor pm)
     
    org.eclipse.text.edits.TextEdit
    Returns the root of the change's edit tree.
     
    getPreviewContent(org.eclipse.core.runtime.IProgressMonitor pm)
     
    getPreviewContent(org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup[] changeGroups, org.eclipse.jface.text.IRegion region, boolean expandRegionToFullLine, int surroundingLines, org.eclipse.core.runtime.IProgressMonitor pm)
     
    org.eclipse.jface.text.IDocument
    getPreviewDocument(org.eclipse.core.runtime.IProgressMonitor pm)
    Returns a document containing a preview of this change.
    org.eclipse.text.edits.TextEdit
    getPreviewEdit(org.eclipse.text.edits.TextEdit original)
    Returns the edit that got executed during preview generation instead of the given original edit.
    org.eclipse.text.edits.TextEdit[]
    getPreviewEdits(org.eclipse.text.edits.TextEdit[] originals)
    Returns the edits that got executed during preview generation instead of the given array of original edits.
    Returns the save mode associated with this change.
    void
    initializeValidationData(org.eclipse.core.runtime.IProgressMonitor pm)
     
    org.eclipse.ltk.core.refactoring.RefactoringStatus
    isValid(org.eclipse.core.runtime.IProgressMonitor pm)
     
    org.eclipse.ltk.core.refactoring.Change
    perform(org.eclipse.core.runtime.IProgressMonitor pm)
     
    void
    Sets the snapshot on which the change's edit tree is based.
    void
    setKeepPreviewEdits(boolean keep)
     
    void
    Sets the save mode of this change.

    Methods inherited from class org.eclipse.ltk.core.refactoring.TextEditBasedChange

    addChangeGroup, addTextEditGroup, getChangeGroups, getKeepPreviewEdits, getName, getTextType, hasOneGroupCategory, setEnabled, setTextType

    Methods inherited from class org.eclipse.ltk.core.refactoring.Change

    dispose, getAdapter, getDescriptor, getParent, isEnabled, setEnabledShallow

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SourceFileChange

      public SourceFileChange(String name, ISourceFile sourceFile)
      Creates a source file change that initially contains only an empty root edit.
      Parameters:
      name - the change's name, mainly used to render the change in the UI - must not be null
      sourceFile - the source file this change works on - must not be null
    • SourceFileChange

      public SourceFileChange(String name, ISourceFile sourceFile, org.eclipse.text.edits.TextEdit edit)
      Creates a source file change with the given edit tree. The structure of the tree may be modified later.
      Parameters:
      name - the change's name, mainly used to render the change in the UI - must not be null
      sourceFile - the source file this change works on - must not be null
      edit - the root of the change's edit tree - must not be null
  • Method Details

    • getEdit

      public org.eclipse.text.edits.TextEdit getEdit()
      Returns the root of the change's edit tree.
      Returns:
      the root of the change's edit tree (never null)
    • addEdit

      public void addEdit(org.eclipse.text.edits.TextEdit edit)
      Adds the given edit by auto inserting it into the change's edit tree. Convenience method.
      Parameters:
      edit - the edit to add - must not be null
      Throws:
      org.eclipse.text.edits.MalformedTreeException - if the edit could not be inserted
    • addEdits

      public void addEdits(org.eclipse.text.edits.TextEdit[] edits)
      Adds the given edits by auto inserting them into the change's edit tree. Convenience method.
      Parameters:
      edits - the edits to add - must not be null
      Throws:
      org.eclipse.text.edits.MalformedTreeException - if the edits could not be inserted
    • addGroupedEdits

      public void addGroupedEdits(org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup group)
      Inserts the edits of the given group into the change's edit tree and then adds the group itself to the change. Convenience method.
      Parameters:
      group - the group to add - must not be null
      Throws:
      org.eclipse.text.edits.MalformedTreeException - if the edits could not be inserted
    • addGroupedEdits

      public void addGroupedEdits(org.eclipse.text.edits.TextEditGroup group)
      Inserts the edits of the given group into the change's edit tree and then adds the group itself to the change. Convenience method.
      Parameters:
      group - the group to add - must not be null
      Throws:
      org.eclipse.text.edits.MalformedTreeException - if the edits could not be inserted
    • setBase

      public void setBase(ISnapshot base)
      Sets the snapshot on which the change's edit tree is based.
      Parameters:
      base - the snapshot on which the change is based, or null if unknown
    • getBase

      public ISnapshot getBase()
      Returns the snapshot on which the change's edit tree is based, or null if the snapshot is unknown.
      Returns:
      the snapshot on which the change is based, or null if unknown
    • setSaveMode

      public void setSaveMode(SaveMode saveMode)
      Sets the save mode of this change.
      Parameters:
      saveMode - a save mode
    • getSaveMode

      public SaveMode getSaveMode()
      Returns the save mode associated with this change.
      Returns:
      the change's save mode
    • initializeValidationData

      public void initializeValidationData(org.eclipse.core.runtime.IProgressMonitor pm)
      Specified by:
      initializeValidationData in class org.eclipse.ltk.core.refactoring.Change
    • isValid

      public org.eclipse.ltk.core.refactoring.RefactoringStatus isValid(org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException, org.eclipse.core.runtime.OperationCanceledException
      Specified by:
      isValid in class org.eclipse.ltk.core.refactoring.Change
      Throws:
      org.eclipse.core.runtime.CoreException
      org.eclipse.core.runtime.OperationCanceledException
    • perform

      public org.eclipse.ltk.core.refactoring.Change perform(org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Specified by:
      perform in class org.eclipse.ltk.core.refactoring.Change
      Throws:
      org.eclipse.core.runtime.CoreException
    • getModifiedElement

      public Object getModifiedElement()
      Specified by:
      getModifiedElement in class org.eclipse.ltk.core.refactoring.Change
    • getAffectedObjects

      public Object[] getAffectedObjects()
      Overrides:
      getAffectedObjects in class org.eclipse.ltk.core.refactoring.Change
    • getCurrentContent

      public String getCurrentContent(org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Specified by:
      getCurrentContent in class org.eclipse.ltk.core.refactoring.TextEditBasedChange
      Throws:
      org.eclipse.core.runtime.CoreException
    • getCurrentContent

      public String getCurrentContent(org.eclipse.jface.text.IRegion region, boolean expandRegionToFullLine, int surroundingLines, org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Specified by:
      getCurrentContent in class org.eclipse.ltk.core.refactoring.TextEditBasedChange
      Throws:
      org.eclipse.core.runtime.CoreException
    • getPreviewContent

      public String getPreviewContent(org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Specified by:
      getPreviewContent in class org.eclipse.ltk.core.refactoring.TextEditBasedChange
      Throws:
      org.eclipse.core.runtime.CoreException
    • getPreviewContent

      public String getPreviewContent(org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup[] changeGroups, org.eclipse.jface.text.IRegion region, boolean expandRegionToFullLine, int surroundingLines, org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Specified by:
      getPreviewContent in class org.eclipse.ltk.core.refactoring.TextEditBasedChange
      Throws:
      org.eclipse.core.runtime.CoreException
    • setKeepPreviewEdits

      public void setKeepPreviewEdits(boolean keep)
      Overrides:
      setKeepPreviewEdits in class org.eclipse.ltk.core.refactoring.TextEditBasedChange
    • getPreviewEdit

      public org.eclipse.text.edits.TextEdit getPreviewEdit(org.eclipse.text.edits.TextEdit original)
      Returns the edit that got executed during preview generation instead of the given original edit. This method requires that setKeepPreviewEdits is set to true and that a preview has been requested via getPreviewContent or getPreviewDocument methods.

      This method returns null if the original edit is not managed by this change.

      Parameters:
      original - the original edit - must not be null
      Returns:
      the edit executed during preview generation, or null if the original edit is not managed by this change
      Throws:
      IllegalStateException - if setKeepPreviewEdits is set to false or a preview has not been requested
    • getPreviewEdits

      public org.eclipse.text.edits.TextEdit[] getPreviewEdits(org.eclipse.text.edits.TextEdit[] originals)
      Returns the edits that got executed during preview generation instead of the given array of original edits. This method requires that setKeepPreviewEdits is set to true and that a preview has been requested via getPreviewContent or getPreviewDocument methods.

      This method returns an empty array if none of the original edits is managed by this change. If some of the original edits are not managed by this change, the length of the returned array will be less than the length of the given array; the returned array never contains null elements.

      Parameters:
      originals - an array of original edits - must not contain null elements
      Returns:
      an array of edits containing the corresponding edits executed during preview generation (never null)
      Throws:
      IllegalStateException - if setKeepPreviewEdits is set to false or a preview has not been requested
    • getPreviewDocument

      public org.eclipse.jface.text.IDocument getPreviewDocument(org.eclipse.core.runtime.IProgressMonitor pm) throws org.eclipse.core.runtime.CoreException
      Returns a document containing a preview of this change. The preview is computed by executing text edits managed by this change. The method considers the active state of the added text edit change groups.
      Parameters:
      pm - a progress monitor to report progress, or null if progress reporting is not desired. The caller must not rely on IProgressMonitor.done() having been called by the receiver
      Returns:
      a document containing the preview of this change (never null)
      Throws:
      org.eclipse.core.runtime.CoreException - if the preview could not be created