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

org.eclipse.jface.text.projection.ChildDocument 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, 2013 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.projection;

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

/**
 * Implementation of a child document based on
 * {@link org.eclipse.jface.text.projection.ProjectionDocument}. This class
 * exists for compatibility reasons.
 * 

* Internal class. This class is not intended to be used by clients.

* * @since 3.0 * @noinstantiate This class is not intended to be instantiated by clients. * @noextend This class is not intended to be subclassed by clients. */ public class ChildDocument extends ProjectionDocument { /** * Position reflecting a visible region. The exclusive end offset of the position * is considered being overlapping with the visible region. */ static private class VisibleRegion extends Position { /** * Creates a new visible region. * * @param regionOffset the offset of the region * @param regionLength the length of the region */ public VisibleRegion(int regionOffset, int regionLength) { super(regionOffset, regionLength); } /** * If regionOffset is the end of the visible region and the regionLength == 0, * the regionOffset is considered overlapping with the visible region. * * @see org.eclipse.jface.text.Position#overlapsWith(int, int) */ @Override public boolean overlapsWith(int regionOffset, int regionLength) { boolean appending= (regionOffset == offset + length) && regionLength == 0; return appending || super.overlapsWith(regionOffset, regionLength); } } /** * Creates a new child document. * * @param masterDocument the master document */ public ChildDocument(IDocument masterDocument) { super(masterDocument); } /** * Returns the parent document of this child document. * * @return the parent document of this child document * @see ProjectionDocument#getMasterDocument() */ public IDocument getParentDocument() { return getMasterDocument(); } /** * Sets the parent document range covered by this child document to the * given range. * * @param offset the offset of the range * @param length the length of the range * @throws BadLocationException if the given range is not valid */ public void setParentDocumentRange(int offset, int length) throws BadLocationException { replaceMasterDocumentRanges(offset, length); } /** * Returns the parent document range of this child document. * * @return the parent document range of this child document */ public Position getParentDocumentRange() { IRegion coverage= getDocumentInformationMapping().getCoverage(); return new VisibleRegion(coverage.getOffset(), coverage.getLength()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy