|
Eclipse Platform Release 3.3 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.compare.structuremergeviewer.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(Object element,
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(Object element,
IProgressMonitor monitor)
Creates a tree structure consisting of IStructureComparator s
from the given object and returns its root object. |
protected abstract IStructureComparator |
createStructureComparator(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(Object object)
Release any resources associated with the given object. |
protected ITypedElement |
findElement(IStructureComparator structure,
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 String |
getDocumentPartitioning()
Return the partitioning to which the partitioner returned from getDocumentPartitioner() is to be associated. |
protected String[] |
getPath(Object element,
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(Object input)
Creates a tree structure consisting of IStructureComparator s
from the given object and returns its root object.
|
IStructureComparator |
locate(Object element,
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,
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(Object input)
IStructureCreator
IStructureComparator
s
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 IStructureCreator
input
- the object from which to create the tree of IStructureComparator
null
in case of errorpublic IStructureComparator createStructure(Object element, IProgressMonitor monitor) throws CoreException
IStructureCreator2
IStructureComparator
s
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 IStructureCreator2
element
- the object from which to create the tree of
IStructureComparator
monitor
- a progress monitor or null
if progress and cancelation is not required
null
in case of
error
CoreException
IStructureCreator.getStructure(Object)
,
IStructureCreator2.destroy(Object)
protected abstract IStructureComparator createStructureComparator(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
CoreException
protected 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 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, 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 IStructureCreator
node
- the node for which to save the new contentinput
- the object from which the structure tree was created in getStructure
IStructureCreator.save(org.eclipse.compare.structuremergeviewer.IStructureComparator, java.lang.Object)
public ITypedElement createElement(Object element, 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 IStructureCreator2
element
- the elementinput
- the containing inputmonitor
- a progress monitor
CoreException
- if a parse error occurredIStructureCreator.locate(Object, Object)
,
IStructureCreator2.destroy(Object)
public IStructureComparator locate(Object element, 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 IStructureCreator
element
- the elementinput
- the containing input
EditionSelectionDialog.selectEdition(org.eclipse.compare.ITypedElement, org.eclipse.compare.ITypedElement[], java.lang.Object)
protected ITypedElement findElement(IStructureComparator structure, 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 String[] getPath(Object element, 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
null
public void destroy(Object object)
IStructureCreator2
IStructureCreator2.createStructure(Object, IProgressMonitor)
or
IStructureCreator2.createElement(Object, Object, IProgressMonitor)
.
destroy
in interface IStructureCreator2
object
- the object to be destroyedIStructureCreator2.createElement(Object, Object, IProgressMonitor)
,
IStructureCreator2.createStructure(Object, IProgressMonitor)
|
Eclipse Platform Release 3.3 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.