All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.text.edits.UndoEdit Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2000, 2008 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.text.edits;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;


/**
 * This class encapsulates the reverse changes of an executed text
 * edit tree. To apply an undo memento to a document use method
 * apply(IDocument).
 * 

* Clients can't add additional children to an undo edit nor can they * add an undo edit as a child to another edit. Doing so results in * both cases in a MalformedTreeException. *

* * @since 3.0 * @noinstantiate This class is not intended to be instantiated by clients. */ public final class UndoEdit extends TextEdit { UndoEdit() { super(0, Integer.MAX_VALUE); } private UndoEdit(UndoEdit other) { super(other); } @Override void internalAdd(TextEdit child) throws MalformedTreeException { throw new MalformedTreeException(null, this, TextEditMessages.getString("UndoEdit.no_children")); //$NON-NLS-1$ } @Override void aboutToBeAdded(TextEdit parent) { throw new MalformedTreeException(parent, this, TextEditMessages.getString("UndoEdit.can_not_be_added")); //$NON-NLS-1$ } @Override UndoEdit dispatchPerformEdits(TextEditProcessor processor) throws BadLocationException { return processor.executeUndo(); } @Override void dispatchCheckIntegrity(TextEditProcessor processor) throws MalformedTreeException { processor.checkIntegrityUndo(); } @Override protected TextEdit doCopy() { return new UndoEdit(this); } @Override protected void accept0(TextEditVisitor visitor) { boolean visitChildren= visitor.visit(this); if (visitChildren) { acceptChildren(visitor); } } @Override int performDocumentUpdating(IDocument document) throws BadLocationException { fDelta= 0; return fDelta; } void add(ReplaceEdit edit) { List children= internalGetChildren(); if (children == null) { children= new ArrayList<>(2); internalSetChildren(children); } children.add(edit); } void defineRegion(int offset, int length) { internalSetOffset(offset); internalSetLength(length); } @Override boolean deleteChildren() { return false; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy