Package org.eclipse.compare
Class ResourceNode
java.lang.Object
org.eclipse.compare.BufferedContent
org.eclipse.compare.ResourceNode
- All Implemented Interfaces:
IContentChangeNotifier
,IEditableContent
,IEditableContentExtension
,IEncodedStreamContentAccessor
,IModificationDate
,IResourceProvider
,IStreamContentAccessor
,ITypedElement
,IStructureComparator
- Direct Known Subclasses:
BufferedResourceNode
public class ResourceNode
extends BufferedContent
implements IEncodedStreamContentAccessor, IStructureComparator, ITypedElement, IEditableContent, IModificationDate, IResourceProvider, IEditableContentExtension
A
ResourceNode
wraps an IResources
so that it can be used
as input for the differencing engine (interfaces IStructureComparator
and ITypedElement
)
and the ReplaceWithEditionDialog
(interfaces ITypedElement
and IModificationDate
).
Clients may instantiate this class; it is not intended to be subclassed.
- Restriction:
- This class is not intended to be subclassed by clients.
-
Field Summary
Fields inherited from interface org.eclipse.compare.ITypedElement
FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE
-
Constructor Summary
ConstructorDescriptionResourceNode
(IResource resource) Creates aResourceNode
for the given resource. -
Method Summary
Modifier and TypeMethodDescriptionprotected IStructureComparator
createChild
(IResource child) This hook method is called fromgetChildren
once for every member of a container resource.protected InputStream
Returns an open stream if the corresponding resource implements theIStorage
interface.boolean
Returns whether some other object is "equal to" this one with respect to a structural comparison.Returns the name of a charset encoding to be used when decoding this stream accessor's contents into characters.Object[]
Returns an iterator for all children of this object ornull
if there are no children.Returns an openInputStream
for this object which can be used to retrieve the object's content.getImage()
Returns an image for this object.long
Returns the modification time of this object.getName()
Returns the name of this object.Returns the corresponding resource for this object.getType()
Returns the type of this object.int
hashCode()
Returns the hash code of the name.boolean
Returnstrue
if this object can be modified.boolean
Return whether the typed element being displayed is read-only. a read-only element will require a call to validateEdit before the element can be modified on disk.replace
(ITypedElement child, ITypedElement other) This method is called on a parent to add or remove a child, or to copy the contents of a child.validateEdit
(Shell shell) If the element is read-only, this method should be called to attempt to make it writable.Methods inherited from class org.eclipse.compare.BufferedContent
addContentChangeListener, discardBuffer, fireContentChanged, getContent, removeContentChangeListener, setContent
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.compare.IEditableContent
setContent
-
Constructor Details
-
ResourceNode
Creates aResourceNode
for the given resource.- Parameters:
resource
- the resource
-
-
Method Details
-
getResource
Returns the corresponding resource for this object.- Specified by:
getResource
in interfaceIResourceProvider
- Returns:
- the corresponding resource
-
getContents
Description copied from interface:IStreamContentAccessor
Returns an openInputStream
for this object which can be used to retrieve the object's content. The client is responsible for closing the stream when finished. Returnsnull
if this object has no streamable contents.- Specified by:
getContents
in interfaceIStreamContentAccessor
- Overrides:
getContents
in classBufferedContent
- Returns:
- an input stream containing the contents of this object
- Throws:
CoreException
- if the contents of this object could not be accessed
-
getModificationDate
public long getModificationDate()Description copied from interface:IModificationDate
Returns the modification time of this object.Note that this value should only be used to give the user a general idea of how old the object is.
- Specified by:
getModificationDate
in interfaceIModificationDate
- Returns:
- the time of last modification, in milliseconds since January 1, 1970, 00:00:00 GMT
-
getName
Description copied from interface:ITypedElement
Returns the name of this object. The name is used when displaying this object in the UI.- Specified by:
getName
in interfaceITypedElement
- Returns:
- the name of this object
-
getType
Description copied from interface:ITypedElement
Returns the type of this object. For objects with a file name this is typically the file extension. For folders its the constantFOLDER_TYPE
. The type is used for determining a suitable viewer for this object.- Specified by:
getType
in interfaceITypedElement
- Returns:
- the type of this object
-
getImage
Description copied from interface:ITypedElement
Returns an image for this object. This image is used when displaying this object in the UI.- Specified by:
getImage
in interfaceITypedElement
- Returns:
- the image of this object or
null
if this type of input has no image
-
equals
Description copied from interface:IStructureComparator
Returns whether some other object is "equal to" this one with respect to a structural comparison. For example, when comparing Java class methods,equals
would returntrue
if two methods have the same signature (the argument names and the method body might differ).- Specified by:
equals
in interfaceIStructureComparator
- Overrides:
equals
in classObject
- Parameters:
other
- the reference object with which to compare- Returns:
true
if this object is the same as the other argument;false
otherwise- See Also:
-
hashCode
public int hashCode()Returns the hash code of the name. -
getChildren
Description copied from interface:IStructureComparator
Returns an iterator for all children of this object ornull
if there are no children.- Specified by:
getChildren
in interfaceIStructureComparator
- Returns:
- an array with all children of this object, or an empty array if there are no children
-
createChild
This hook method is called fromgetChildren
once for every member of a container resource. This implementation creates a newResourceNode
for the given child resource. Clients may override this method to create a different type ofIStructureComparator
or to filter children by returningnull
.- Parameters:
child
- the child resource for which aIStructureComparator
must be returned- Returns:
- a
ResourceNode
for the given child ornull
-
createStream
Returns an open stream if the corresponding resource implements theIStorage
interface. Otherwise the valuenull
is returned.- Specified by:
createStream
in classBufferedContent
- Returns:
- a buffered input stream containing the contents of this storage
- Throws:
CoreException
- if the contents of this storage could not be accessed
-
isEditable
public boolean isEditable()Description copied from interface:IEditableContent
Returnstrue
if this object can be modified. If it returnsfalse
the other methods of this API must not be called.- Specified by:
isEditable
in interfaceIEditableContent
- Returns:
true
if this object can be modified
-
replace
Description copied from interface:IEditableContent
This method is called on a parent to add or remove a child, or to copy the contents of a child. What to do is encoded in the two arguments as follows:add: dest == null src != null remove: dest != null src == null copy: dest != null src != null - Specified by:
replace
in interfaceIEditableContent
- Parameters:
child
- the existing child of this object to be replaced; ifnull
a new child can be added.other
- the new child to be added or replaced; ifnull
an existing child can be removed.- Returns:
- the argument
dest
-
getCharset
Description copied from interface:IEncodedStreamContentAccessor
Returns the name of a charset encoding to be used when decoding this stream accessor's contents into characters. Returnsnull
if a proper encoding cannot be determined.Note: this method does not check whether the result is a supported charset name. Callers should be prepared to handle
UnsupportedEncodingException
where this charset is used.- Specified by:
getCharset
in interfaceIEncodedStreamContentAccessor
- Returns:
- the name of a charset, or
null
- See Also:
-
isReadOnly
public boolean isReadOnly()Description copied from interface:IEditableContentExtension
Return whether the typed element being displayed is read-only. a read-only element will require a call to validateEdit before the element can be modified on disk.- Specified by:
isReadOnly
in interfaceIEditableContentExtension
- Returns:
- whether the typed element is read-only
-
validateEdit
Description copied from interface:IEditableContentExtension
If the element is read-only, this method should be called to attempt to make it writable.- Specified by:
validateEdit
in interfaceIEditableContentExtension
- Parameters:
shell
- a shell used to prompt the user if required.- Returns:
- a status object that is
OK
if things are fine, otherwise a status describing reasons why modifying the given files is not reasonable. A status with a severity ofCANCEL
is returned if the validation was canceled, indicating the edit should not proceed.
-