|
Eclipse Platform Release 3.6 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.eclipse.compare.structuremergeviewer.StructureCreator
public abstract class StructureCreator
An IStructureCreator2 that attempts to use an IDocumentProvider
to obtain a shared document for an ITypedElement.
Clients may subclass this class.
| Constructor Summary | |
|---|---|
StructureCreator()
|
|
| Method Summary | |
|---|---|
ITypedElement |
createElement(java.lang.Object element,
java.lang.Object input,
IProgressMonitor monitor)
Default implementation of createElement(Object, Object, IProgressMonitor)
that uses getPath(Object, Object) to determine the
path for the element, createStructure(Object, IProgressMonitor) to create the structure
and findElement(IStructureComparator, String[]) to find the
element in the structure. |
IStructureComparator |
createStructure(java.lang.Object element,
IProgressMonitor monitor)
Creates a tree structure consisting of IStructureComparators
from the given object and returns its root object. |
protected abstract IStructureComparator |
createStructureComparator(java.lang.Object element,
IDocument document,
ISharedDocumentAdapter sharedDocumentAdapter,
IProgressMonitor monitor)
Create an IStructureComparator for the given element using the
contents available in the given document. |
void |
destroy(java.lang.Object object)
Release any resources associated with the given object. |
protected ITypedElement |
findElement(IStructureComparator structure,
java.lang.String[] path)
Find the element at the given path in the given structure. |
protected IDocumentPartitioner |
getDocumentPartitioner()
Return the partitioner to be associated with the document or null is partitioning is not needed or if the subclass
overrode setupDocument(IDocument) directly. |
protected java.lang.String |
getDocumentPartitioning()
Return the partitioning to which the partitioner returned from getDocumentPartitioner() is to be associated. |
protected java.lang.String[] |
getPath(java.lang.Object element,
java.lang.Object input)
Return the path of the element in the structure of it's containing input or null if the element is not contained in the input. |
IStructureComparator |
getStructure(java.lang.Object input)
Creates a tree structure consisting of IStructureComparators
from the given object and returns its root object. |
IStructureComparator |
locate(java.lang.Object element,
java.lang.Object input)
Default implementation of locate(Object, Object) that
uses getPath(Object, Object) to determine the
path for the element, getStructure(Object) to create the structure
and findElement(IStructureComparator, String[]) to find the
element in the structure. |
void |
save(IStructureComparator node,
java.lang.Object input)
Default implementation of save that extracts the contents from the document of an IDocumentRange and sets it on the
input. |
protected void |
setupDocument(IDocument document)
Setup the newly created document as appropriate. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.eclipse.compare.structuremergeviewer.IStructureCreator |
|---|
getContents, getName |
| Constructor Detail |
|---|
public StructureCreator()
| Method Detail |
|---|
public IStructureComparator getStructure(java.lang.Object input)
IStructureCreatorIStructureComparators
from the given object and returns its root object.
Implementing this method typically involves parsing the input object.
In case of an error (e.g. a parsing error) the value null is returned.
getStructure in interface IStructureCreatorinput - the object from which to create the tree of IStructureComparator
null in case of error
public IStructureComparator createStructure(java.lang.Object element,
IProgressMonitor monitor)
throws CoreException
IStructureCreator2IStructureComparators
from the given object and returns its root object. Implementing this
method typically involves parsing the input object. In case of an error
(e.g. a parsing error) the value null is returned.
This method is equivalent to
IStructureCreator.getStructure(Object) with the exception that
the IStructureCreator2.destroy(Object) method must be called with the returned
comparator as a parameter when the comparator is no longer
needed. This is done to allow structure creators
to make use of shared resources such a file buffer.
Also, the node returned from this method should adapt to an
ISharedDocumentAdapter if the provided input has
a shared document adapter and it is being used by the
this creator. The convenience class SharedDocumentAdapterWrapper
is provided to allow the creator to wrap the adapter of the input
so that the proper key can be returned.
createStructure in interface IStructureCreator2element - the object from which to create the tree of
IStructureComparatormonitor - a progress monitor or null if progress and cancelation is not required
null in case of
error
CoreExceptionIStructureCreator.getStructure(Object),
IStructureCreator2.destroy(Object)
protected abstract IStructureComparator createStructureComparator(java.lang.Object element,
IDocument document,
ISharedDocumentAdapter sharedDocumentAdapter,
IProgressMonitor monitor)
throws CoreException
IStructureComparator for the given element using the
contents available in the given document. If the provided
ISharedDocumentAdapter is not null then the
IStructureComparator returned by this method must implement the
IDisposable interface and disconnect from the adapter when the
comparator is disposed. The StructureDiffViewer class will call
dispose if the IStructureComparator also implements
IDisposable. Other clients must do the same.
It should be noted that the provided ISharedDocumentAdapter
will provide the key associated with the given element when
ISharedDocumentAdapter.getDocumentKey(Object) is called
for any IDocumentRange node whose document matches the
provided document. Thus, this adapter should also be returned
by the structure comparator and its children when they are adapted
to an ISharedDocumentAdapter.
element - the elementdocument - the document that has the contents for the elementsharedDocumentAdapter - the shared document adapter from which the
document was obtained or null if the document
is not shared.monitor - a progress monitor or null if progress is not required
CoreExceptionprotected void setupDocument(IDocument document)
IDocumentExtension3 interface
in case the document is shared via a file buffer.
document - a documentprotected IDocumentPartitioner getDocumentPartitioner()
null is partitioning is not needed or if the subclass
overrode setupDocument(IDocument) directly.
protected java.lang.String getDocumentPartitioning()
getDocumentPartitioner() is to be associated. Return null
only if partitioning is not needed or if the subclass
overrode setupDocument(IDocument) directly.
IDocumentExtension3
public void save(IStructureComparator node,
java.lang.Object input)
IDocumentRange and sets it on the
input. If the input is an IEncodedStreamContentAccessor,
the charset of the input is used to extract the contents from the
document. If the input adapts to ISharedDocumentAdapter and
the document of the IDocumentRange matches that of the
input, then the save is issued through the shared document adapter.
save in interface IStructureCreatornode - the node for which to save the new contentinput - the object from which the structure tree was created in getStructureIStructureCreator.save(org.eclipse.compare.structuremergeviewer.IStructureComparator, java.lang.Object)
public ITypedElement createElement(java.lang.Object element,
java.lang.Object input,
IProgressMonitor monitor)
throws CoreException
createElement(Object, Object, IProgressMonitor)
that uses getPath(Object, Object) to determine the
path for the element, createStructure(Object, IProgressMonitor) to create the structure
and findElement(IStructureComparator, String[]) to find the
element in the structure. Subclasses may override.
createElement in interface IStructureCreator2element - the elementinput - the containing inputmonitor - a progress monitor
CoreException - if a parse error occurredIStructureCreator.locate(Object, Object),
IStructureCreator2.destroy(Object)
public IStructureComparator locate(java.lang.Object element,
java.lang.Object input)
locate(Object, Object) that
uses getPath(Object, Object) to determine the
path for the element, getStructure(Object) to create the structure
and findElement(IStructureComparator, String[]) to find the
element in the structure. Subclasses may override.
locate in interface IStructureCreatorelement - the elementinput - the containing input
protected ITypedElement findElement(IStructureComparator structure,
java.lang.String[] path)
createElement(Object, Object, IProgressMonitor)
and locate(Object, Object) methods to find the element for
the given path.
structure - the structurepath - the path of an element in the structure
null
protected java.lang.String[] getPath(java.lang.Object element,
java.lang.Object input)
null if the element is not contained in the input. This method is
invoked from createElement(Object, Object, IProgressMonitor) and
locate(Object, Object) methods to determine
the path to be passed to findElement(IStructureComparator, String[]).
By default, null is returned. Subclasses may override.
element - the elementinput - the input
nullpublic void destroy(java.lang.Object object)
IStructureCreator2IStructureCreator2.createStructure(Object, IProgressMonitor) or
IStructureCreator2.createElement(Object, Object, IProgressMonitor).
destroy in interface IStructureCreator2object - the object to be destroyedIStructureCreator2.createElement(Object, Object, IProgressMonitor),
IStructureCreator2.createStructure(Object, IProgressMonitor)
|
Eclipse Platform Release 3.6 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2010. All rights reserved.