01: /*******************************************************************************
02: * Copyright (c) 2000, 2005 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jface.text;
11:
12: /**
13: * Extension to {@link org.eclipse.jface.text.IDocumentInformationMapping}.
14: * <p>
15: * Extends the information available in the mapping by providing explicit access
16: * to the isomorphic portion of the basically homomorphic information mapping.
17: *
18: * @see org.eclipse.jface.text.IDocumentInformationMapping
19: * @since 3.0
20: */
21: public interface IDocumentInformationMappingExtension {
22:
23: /**
24: * Adheres to
25: * <code>originRegion=toOriginRegion(toExactImageRegion(originRegion))</code>,
26: * if <code>toExactImageRegion(originRegion) != null</code>. Returns
27: * <code>null</code> if there is no image for the given origin region.
28: *
29: * @param originRegion the origin region
30: * @return the exact image region or <code>null</code>
31: * @throws BadLocationException if origin region is not a valid region in
32: * the origin document
33: */
34: IRegion toExactImageRegion(IRegion originRegion)
35: throws BadLocationException;
36:
37: /**
38: * Returns the segments of the image document that exactly correspond to the
39: * given region of the original document. Returns <code>null</code> if
40: * there are no such image regions.
41: *
42: * @param originRegion the region in the origin document
43: * @return the segments in the image document or <code>null</code>
44: * @throws BadLocationException in case the given origin region is not valid
45: * in the original document
46: */
47: IRegion[] toExactImageRegions(IRegion originRegion)
48: throws BadLocationException;
49:
50: /**
51: * Returns the fragments of the original document that exactly correspond to
52: * the given region of the image document.
53: *
54: * @param imageRegion the region in the image document
55: * @return the fragments in the origin document
56: * @throws BadLocationException in case the given image region is not valid
57: * in the image document
58: */
59: IRegion[] toExactOriginRegions(IRegion imageRegion)
60: throws BadLocationException;
61:
62: /**
63: * Returns the length of the image document.
64: *
65: * @return the length of the image document
66: */
67: int getImageLength();
68:
69: /**
70: * Returns the maximal sub-regions of the given origin region which are
71: * completely covered. I.e. each offset in a sub-region has a corresponding
72: * image offset. Returns <code>null</code> if there are no such
73: * sub-regions.
74: *
75: * @param originRegion the region in the origin document
76: * @return the sub-regions with complete coverage or <code>null</code>
77: * @throws BadLocationException in case the given origin region is not valid
78: * in the original document
79: */
80: IRegion[] getExactCoverage(IRegion originRegion)
81: throws BadLocationException;
82: }
|