Class StructureCreator
java.lang.Object
org.eclipse.compare.structuremergeviewer.StructureCreator
- All Implemented Interfaces:
- IStructureCreator,- IStructureCreator2
An 
IStructureCreator2 that attempts to use an IDocumentProvider
 to obtain a shared document for an ITypedElement.
 Clients may subclass this class.
- Since:
- 3.3
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbooleancontentsEquals(Object node1, char contributor1, Object node2, char contributor2, boolean ignoreWhitespace, ICompareFilter[] compareFilters) Returns true if the two nodes are equal for comparison purposes.createElement(Object element, Object input, IProgressMonitor monitor) Default implementation ofcreateElement(Object, Object, IProgressMonitor)that usesgetPath(Object, Object)to determine the path for the element,createStructure(Object, IProgressMonitor)to create the structure andfindElement(IStructureComparator, String[])to find the element in the structure.createStructure(Object element, IProgressMonitor monitor) Creates a tree structure consisting ofIStructureComparators from the given object and returns its root object.protected abstract IStructureComparatorcreateStructureComparator(Object element, IDocument document, ISharedDocumentAdapter sharedDocumentAdapter, IProgressMonitor monitor) Creates anIStructureComparatorfor the given element using the contents available in the given document.voidRelease any resources associated with the given object.protected ITypedElementfindElement(IStructureComparator structure, String[] path) Finds the element at the given path in the given structure.protected IDocumentPartitionerReturns the partitioner to be associated with the document ornullis partitioning is not needed or if the subclass overrodesetupDocument(IDocument)directly.protected StringReturns the partitioning to which the partitioner returned fromgetDocumentPartitioner()is to be associated.protected String[]Returns the path of the element in the structure of it's containing input ornullif the element is not contained in the input.getStructure(Object input) Creates a tree structure consisting ofIStructureComparators from the given object and returns its root object.Default implementation oflocate(Object, Object)that usesgetPath(Object, Object)to determine the path for the element,getStructure(Object)to create the structure andfindElement(IStructureComparator, String[])to find the element in the structure.voidsave(IStructureComparator node, Object input) Default implementation of save that extracts the contents from the document of anIDocumentRangeand sets it on the input.protected voidsetupDocument(IDocument document) Sets up the newly created document as appropriate.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.compare.structuremergeviewer.IStructureCreatorgetContents, getName
- 
Constructor Details- 
StructureCreatorpublic StructureCreator()
 
- 
- 
Method Details- 
getStructureDescription copied from interface:IStructureCreatorCreates a tree structure consisting ofIStructureComparators 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 valuenullis returned.- Specified by:
- getStructurein interface- IStructureCreator
- Parameters:
- input- the object from which to create the tree of- IStructureComparator
- Returns:
- the root node of the structure or nullin case of error
 
- 
createStructurepublic IStructureComparator createStructure(Object element, IProgressMonitor monitor) throws CoreException Description copied from interface:IStructureCreator2Creates a tree structure consisting ofIStructureComparators 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 valuenullis returned.This method is equivalent to IStructureCreator.getStructure(Object)with the exception that theIStructureCreator2.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 ISharedDocumentAdapterif the provided input has a shared document adapter and it is being used by the this creator. The convenience classSharedDocumentAdapterWrapperis provided to allow the creator to wrap the adapter of the input so that the proper key can be returned.- Specified by:
- createStructurein interface- IStructureCreator2
- Parameters:
- element- the object from which to create the tree of- IStructureComparator
- monitor- a progress monitor or- nullif progress and cancelation is not required
- Returns:
- the root node of the structure or nullin case of error
- Throws:
- CoreException- if structure creation failed; depends on actual implementation
- See Also:
 
- 
setupDocumentSets up the newly created document as appropriate. Any document partitioners should be added to a custom slot using theIDocumentExtension3interface in case the document is shared via a file buffer.- Parameters:
- document- a document
 
- 
getDocumentPartitionerReturns the partitioner to be associated with the document ornullis partitioning is not needed or if the subclass overrodesetupDocument(IDocument)directly.- Returns:
- a partitioner
 
- 
getDocumentPartitioningReturns the partitioning to which the partitioner returned fromgetDocumentPartitioner()is to be associated. Returnnullonly if partitioning is not needed or if the subclass overrodesetupDocument(IDocument)directly.- Returns:
- a partitioning
- See Also:
 
- 
saveDefault implementation of save that extracts the contents from the document of anIDocumentRangeand sets it on the input. If the input is anIEncodedStreamContentAccessor, the charset of the input is used to extract the contents from the document. If the input adapts toISharedDocumentAdapterand the document of theIDocumentRangematches that of the input, then the save is issued through the shared document adapter.- Specified by:
- savein interface- IStructureCreator
- Parameters:
- node- the node for which to save the new content
- input- the object from which the structure tree was created in- getStructure
- See Also:
 
- 
createElementpublic ITypedElement createElement(Object element, Object input, IProgressMonitor monitor) throws CoreException Default implementation ofcreateElement(Object, Object, IProgressMonitor)that usesgetPath(Object, Object)to determine the path for the element,createStructure(Object, IProgressMonitor)to create the structure andfindElement(IStructureComparator, String[])to find the element in the structure. Subclasses may override.- Specified by:
- createElementin interface- IStructureCreator2
- Parameters:
- element- the element
- input- the containing input
- monitor- a progress monitor
- Returns:
- the sub-structure element in the input for the given element
- Throws:
- CoreException- if a parse error occurred
- See Also:
 
- 
locateDefault implementation oflocate(Object, Object)that usesgetPath(Object, Object)to determine the path for the element,getStructure(Object)to create the structure andfindElement(IStructureComparator, String[])to find the element in the structure. Subclasses may override.- Specified by:
- locatein interface- IStructureCreator
- Parameters:
- element- the element
- input- the containing input
- Returns:
- the sub-structure element in the input for the given element
 
- 
findElementFinds the element at the given path in the given structure. This method is invoked from thecreateElement(Object, Object, IProgressMonitor)andlocate(Object, Object)methods to find the element for the given path.- Parameters:
- structure- the structure
- path- the path of an element in the structure
- Returns:
- the element at the given path in the structure or null
 
- 
getPathReturns the path of the element in the structure of it's containing input ornullif the element is not contained in the input. This method is invoked fromcreateElement(Object, Object, IProgressMonitor)andlocate(Object, Object)methods to determine the path to be passed tofindElement(IStructureComparator, String[]). By default,nullis returned. Subclasses may override.- Parameters:
- element- the element
- input- the input
- Returns:
- the path of the element in the structure of it's containing input
 or null
 
- 
destroyDescription copied from interface:IStructureCreator2Release any resources associated with the given object. This method must be called for objects returned from eitherIStructureCreator2.createStructure(Object, IProgressMonitor)orIStructureCreator2.createElement(Object, Object, IProgressMonitor).- Specified by:
- destroyin interface- IStructureCreator2
- Parameters:
- object- the object to be destroyed
- See Also:
 
- 
contentsEqualspublic boolean contentsEquals(Object node1, char contributor1, Object node2, char contributor2, boolean ignoreWhitespace, ICompareFilter[] compareFilters) Returns true if the two nodes are equal for comparison purposes. IfcompareFiltersis not empty, the filters are applied to each line of each node's text representation.- Parameters:
- node1- first node
- contributor1- either 'A', 'L', or 'R' for ancestor, left or right contributor
- node2- second node
- contributor2- either 'A', 'L', or 'R' for ancestor, left or right contributor
- ignoreWhitespace- if- truewhitespace characters will be ignored when determining equality. Note: Will bypass any custom ignore whitespace behaviors contributed through implementations of- org.eclipse.compare.structuremergeviewer.IStructureCreator.getContents()
- compareFilters- the filters used to customize the comparison of lines of text.
- Returns:
- whether the two nodes are equal for comparison purposes
- Since:
- 3.6
- Restriction:
- This method is not intended to be referenced by clients.
 
 
-