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

org.eclipse.jface.text.ISlaveDocumentManager 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, 2011 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.jface.text;

/**
 * Slave documents are documents whose contents is defined in terms of a master
 * document. Thus, slave documents usually reflect a projection of the master document.
 * Slave documents are causally connected to the master document. This means, changes
 * of the master document have immediate effect on the slave document and vice versa.
 * 

* A slave document manager creates slave documents for given master documents, manages the * life cycle of the slave documents, and keeps track of the information flow between * master and slave documents. The slave document manager defines the construction rules of the * slave documents in terms of the master document.

*

* In order to provided backward compatibility for clients of ISlaveDocumentManager, extension * interfaces are used to provide a means of evolution. The following extension interfaces * exist: *

*
    *
  • {@link org.eclipse.jface.text.ISlaveDocumentManagerExtension} since version 3.0 extending the protocol * with an access to all managed slave document for a given master document.
  • *
* * @see org.eclipse.jface.text.IDocument * @since 2.1 */ public interface ISlaveDocumentManager { /** * Creates a new slave document for the given master document. The slave document * is causally connected to its master document until freeSlaveDocument * is called. The connection between the newly created slave document and the master * document is managed by this slave document manager. * * @param master the master document * @return the newly created slave document * @see #freeSlaveDocument(IDocument) */ IDocument createSlaveDocument(IDocument master); /** * Frees the given slave document. If the given document is not a slave document known * to this slave document manager, this call does not have any effect. A slave * document is known to this slave document manager if it has been created by * this manager using createSlaveDocument. * * @param slave the slave document to be freed * @see #createSlaveDocument(IDocument) */ void freeSlaveDocument(IDocument slave); /** * Creates a new document information mapping between the given slave document and * its master document. Returns null if the given document is unknown * to this slave document manager. * * @param slave the slave document * @return a document information mapping between the slave document and its master document or * null */ IDocumentInformationMapping createMasterSlaveMapping(IDocument slave); /** * Returns the master document of the given slave document or null if the * given document is unknown to this slave document manager. * * @param slave the slave document * @return the master document of the given slave document or null */ IDocument getMasterDocument(IDocument slave); /** * Returns whether the given document is a slave document known to this slave document manager. A slave document * is known to this slave document manager, if the document has been created by this manager. * * @param document the document to be checked whether it is a slave document known to this manager * @return true if the document is a slave document, false otherwise */ boolean isSlaveDocument(IDocument document); /** * Sets the given slave document's auto expand mode. In auto expand mode, a slave document is * automatically adapted to reflect all changes applied to its master document. Assume a master * document contains 30 lines and the slave is defined to contain the lines 11-20. In auto * expand mode, when the master document is changed at line 8, the slave document is expanded to * contain the lines 8-20. *

* This call is without effect if the given document is unknown to this slave document manager. * * @param slave the slave whose auto expand mode should be set * @param autoExpand true for auto expand, false otherwise */ void setAutoExpandMode(IDocument slave, boolean autoExpand); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy