Package org.aspectj.org.eclipse.jdt.core.dom.rewrite.TargetSourceRangeComputer

Examples of org.aspectj.org.eclipse.jdt.core.dom.rewrite.TargetSourceRangeComputer.SourceRange


   * @return an extended source range (never null)
   * @since 3.1
   */
  final SourceRange getExtendedRange(ASTNode node) {
    if (this.eventStore.isRangeCopyPlaceholder(node)) {
      return new SourceRange(node.getStartPosition(), node.getLength());
    }
    return this.extendedSourceRangeComputer.computeSourceRange(node);
  }
View Full Code Here


  }
 
  final TextEdit getCopySourceEdit(CopySourceInfo info) {
    TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info);
    if (edit == null) {
      SourceRange range= getExtendedRange(info.getNode());
      int start= range.getStartPosition();
      int end= start + range.getLength();
      if (info.isMove) {
        MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start);
        moveSourceEdit.setTargetEdit(new MoveTargetEdit(0));
        edit= moveSourceEdit;
      } else {
View Full Code Here

  private int rewriteRequiredNode(ASTNode parent, StructuralPropertyDescriptor property) {
    RewriteEvent event= getEvent(parent, property);
    if (event != null && event.getChangeKind() == RewriteEvent.REPLACED) {
      ASTNode node= (ASTNode) event.getOriginalValue();
      TextEditGroup editGroup= getEditGroup(event);
      SourceRange range= getExtendedRange(node);
      int offset= range.getStartPosition();
      int length= range.getLength();
      doTextRemoveAndVisit(offset, length, node, editGroup);
      doTextInsert(offset, (ASTNode) event.getNewValue(), getIndent(offset), true, editGroup);
      return offset + length; 
    }
    return doVisit(parent, property, 0);
View Full Code Here

          return nodeEnd;
        }
        case RewriteEvent.REPLACED: {
          ASTNode node= (ASTNode) event.getOriginalValue();
          TextEditGroup editGroup= getEditGroup(event);
          SourceRange range= getExtendedRange(node);
          int nodeOffset= range.getStartPosition();
          int nodeLen= range.getLength();
          doTextRemoveAndVisit(nodeOffset, nodeLen, node, editGroup);
          doTextInsert(nodeOffset, (ASTNode) event.getNewValue(), getIndent(offset), true, editGroup);
          return nodeOffset + nodeLen;
        }
      }
View Full Code Here

          break;
        }
        case RewriteEvent.REPLACED: {
          ASTNode node= (ASTNode) event.getOriginalValue();
          TextEditGroup editGroup= getEditGroup(event);
          SourceRange range= getExtendedRange(node);
          int offset= range.getStartPosition();
          int length= range.getLength();
         
          doTextRemoveAndVisit(offset, length, node, editGroup);
          doTextInsert(offset, (ASTNode) event.getNewValue(), getIndent(startPos), true, editGroup);
          try {
            return getScanner().getTokenEndOffset(ITerminalSymbols.TokenNameDOT, offset + length);
View Full Code Here

    CopySourceInfo[] infos= this.eventStore.getNodeCopySources(node);
    doCopySourcePreVisit(infos, this.sourceCopyEndNodes);

    TextEditGroup editGroup= this.eventStore.getTrackedNodeData(node);
    if (editGroup != null) {
      SourceRange range= getExtendedRange(node);
      int offset= range.getStartPosition();
      int length= range.getLength();
      TextEdit edit= new RangeMarker(offset, length);
      addEditGroup(editGroup, edit);
      addEdit(edit);
      this.currentEdit= edit;
    }
View Full Code Here

          pos= endPos;
          break;
        }
        case RewriteEvent.REPLACED: {
          ASTNode superClass= (ASTNode) superClassEvent.getOriginalValue();
          SourceRange range= getExtendedRange(superClass);
          int offset= range.getStartPosition();
          int length= range.getLength();
          doTextRemoveAndVisit(offset, length, superClass, getEditGroup(superClassEvent));
          doTextInsert(offset, (ASTNode) superClassEvent.getNewValue(), 0, false, getEditGroup(superClassEvent));
          pos= offset + length;
          break;
        }
View Full Code Here

      ArrayType replacingType= (ArrayType) typeEvent.getNewValue();
      editGroup= getEditGroup(typeEvent);
      Type newType= replacingType.getElementType();
      Type oldType= getElementType(arrayType);
      if (!newType.equals(oldType)) {
        SourceRange range= getExtendedRange(oldType);
        int offset= range.getStartPosition();
        int length= range.getLength();
        doTextRemove(offset, length, editGroup);
        doTextInsert(offset, newType, 0, false, editGroup);
      }
      nNewBrackets= replacingType.getDimensions(); // is replaced type
    }
    voidVisit(arrayType);
   

    try {
      int offset= getScanner().getTokenStartOffset(ITerminalSymbols.TokenNameLBRACKET, arrayType.getStartPosition());
      // dimension node with expressions
      RewriteEvent dimEvent= getEvent(node, ArrayCreation.DIMENSIONS_PROPERTY);
      boolean hasDimensionChanges= (dimEvent != null && dimEvent.getChangeKind() != RewriteEvent.UNCHANGED);
      if (hasDimensionChanges) {
        RewriteEvent[] events= dimEvent.getChildren();
        // offset on first opening brace
        for (int i= 0; i < events.length; i++) {
          RewriteEvent event= events[i];
          int changeKind= event.getChangeKind();
          if (changeKind == RewriteEvent.INSERTED) { // insert new dimension
            editGroup= getEditGroup(event);
            doTextInsert(offset, "[", editGroup); //$NON-NLS-1$
            doTextInsert(offset, (ASTNode) event.getNewValue(), 0, false, editGroup);
            doTextInsert(offset, "]", editGroup); //$NON-NLS-1$
            nNewBrackets--;
          } else {
            ASTNode elem= (ASTNode) event.getOriginalValue();
            int elemEnd= elem.getStartPosition() + elem.getLength();
            int endPos= getScanner().getTokenEndOffset(ITerminalSymbols.TokenNameRBRACKET, elemEnd);
            if (changeKind == RewriteEvent.REMOVED) {
              editGroup= getEditGroup(event);
              doTextRemoveAndVisit(offset, endPos - offset, elem, editGroup);
            } else if (changeKind == RewriteEvent.REPLACED) {
              editGroup= getEditGroup(event);
              SourceRange range= getExtendedRange(elem);
              int elemOffset= range.getStartPosition();
              int elemLength= range.getLength();
              doTextRemoveAndVisit(elemOffset, elemLength, elem, editGroup);
              doTextInsert(elemOffset, (ASTNode) event.getNewValue(), 0, false, editGroup);
              nNewBrackets--;
            } else {
              voidVisit(elem);
View Full Code Here

TOP

Related Classes of org.aspectj.org.eclipse.jdt.core.dom.rewrite.TargetSourceRangeComputer.SourceRange

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.