Overview

 
Package  Use  Tree  Deprecated  Index  Help 
Eclipse Platform
Release 3.0
 PREV CLASS   NEXT CLASS FRAMES    NO FRAMES  
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


 

org.eclipse.text.edits
Class CopySourceEdit

java.lang.Object
  extended byorg.eclipse.text.edits.TextEdit
      extended byorg.eclipse.text.edits.CopySourceEdit


public final class CopySourceEdit
extends TextEdit

A copy source edit denotes the source of a copy operation. Copy source edits are only valid inside an edit tree if they have a corresponding traget edit. Furthermore the corresponding target edit can't be a direct or indirect child of the source edit. Violating one of two requirements will result in a MalformedTreeException when executing the edit tree.

A copy source edit can manange an optional source modifier. A source modifier can provide a set of replace edits which will to applied to the source before it gets inserted at the target position.

Since:
3.0
See Also:
CopyTargetEdit


Field Summary
 
Fields inherited from class org.eclipse.text.edits.TextEdit
CREATE_UNDO, NONE, UPDATE_REGIONS
 
Constructor Summary
CopySourceEdit(int offset, int length)
          Constructs a new copy source edit.
CopySourceEdit(int offset, int length, CopyTargetEdit target)
          Constructs a new copy source edit.
 
Method Summary
protected  void accept0(TextEditVisitor visitor)
          Accepts the given visitor on a type-specific visit of the current edit.
protected  TextEdit doCopy()
          Creates and returns a copy of this edit.
 ISourceModifier getSourceModifier()
          Returns the current source modifier or null if no source modifier is set.
 CopyTargetEdit getTargetEdit()
          Returns the associated traget edit or null if no target edit is associated yet.
protected  void postProcessCopy(TextEditCopier copier)
          This method is called on every edit of the copied tree to do some post-processing like connected an edit to a different edit in the tree.
 void setSourceModifier(ISourceModifier modifier)
          Sets the optional source modifier.
 void setTargetEdit(CopyTargetEdit edit)
          Sets the target edit.
 
Methods inherited from class org.eclipse.text.edits.TextEdit
accept, acceptChildren, addChild, addChildren, apply, apply, canZeroLengthCover, copy, covers, equals, getChildren, getChildrenSize, getCoverage, getExclusiveEnd, getInclusiveEnd, getLength, getOffset, getParent, getRegion, hasChildren, hashCode, isDeleted, removeChild, removeChild, removeChildren, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

 

 

CopySourceEdit

public CopySourceEdit(int offset,
                      int length)

Constructs a new copy source edit.

Parameters:
offset - the edit's offset
length - the edit's length


 

 

CopySourceEdit

public CopySourceEdit(int offset,
                      int length,
                      CopyTargetEdit target)

Constructs a new copy source edit.

Parameters:
offset - the edit's offset
length - the edit's length
target - the edit's target
Method Detail

 

 

getTargetEdit

public CopyTargetEdit getTargetEdit()

Returns the associated traget edit or null if no target edit is associated yet.

Returns:
the target edit or null


 

 

setTargetEdit

public void setTargetEdit(CopyTargetEdit edit)
                   throws MalformedTreeException

Sets the target edit.

Parameters:
edit - the new target edit.
Throws:
MalformedTreeException - is thrown if the target edit is a direct or indirect child of the source edit


 

 

getSourceModifier

public ISourceModifier getSourceModifier()

Returns the current source modifier or null if no source modifier is set.

Returns:
the source modifier


 

 

setSourceModifier

public void setSourceModifier(ISourceModifier modifier)

Sets the optional source modifier.

Parameters:
modifier - the source modifier or null if no source modification is need.


 

 

doCopy

protected TextEdit doCopy()

Description copied from class: TextEdit
Creates and returns a copy of this edit. The copy method should be implemented in a way so that the copy can executed without causing any harm to the original edit. Implementors of this method are responsible for creating deep or shallow copies of referenced object to fullfil this requirement.

Implementers of this method should use the copy constructor Edit#Edit(Edit source) to initialize the edit part of the copy. Implementors aren't responsible to actually copy the children or to set the right parent.

This method should not be called from outside the framework. Please use copy to create a copy of a edit tree.

Specified by:
doCopy in class TextEdit

Returns:
a copy of this edit.
See Also:
TextEdit.copy(), TextEdit.postProcessCopy(TextEditCopier), TextEditCopier


 

 

accept0

protected void accept0(TextEditVisitor visitor)

Description copied from class: TextEdit
Accepts the given visitor on a type-specific visit of the current edit. This method must be implemented in all concrete text edits.

General template for implementation on each concrete TextEdit class:

 
 boolean visitChildren = visitor.visit(this);
 if (visitChildren) {
    acceptChildren(visitor);
 }
 
 
Note that the caller (accept) takes care of invoking visitor.preVisit(this) and visitor.postVisit(this).

Specified by:
accept0 in class TextEdit

Parameters:
visitor - the visitor object


 

 

postProcessCopy

protected void postProcessCopy(TextEditCopier copier)

Description copied from class: TextEdit
This method is called on every edit of the copied tree to do some post-processing like connected an edit to a different edit in the tree.

This default implementation does nothing

Overrides:
postProcessCopy in class TextEdit

Parameters:
copier - the copier that manages a map between original and copied edit.
See Also:
TextEditCopier


 

Overview

 
Package  Use  Tree  Deprecated  Index  Help 
Eclipse Platform
Release 3.0
 PREV CLASS   NEXT CLASS FRAMES    NO FRAMES  
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.