public class ResourceNode extends BufferedContent implements IEncodedStreamContentAccessor, IStructureComparator, ITypedElement, IEditableContent, IModificationDate, IResourceProvider, IEditableContentExtension
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.
FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE| Constructor and Description |
|---|
ResourceNode(IResource resource)
Creates a
ResourceNode for the given resource. |
| Modifier and Type | Method and Description |
|---|---|
protected IStructureComparator |
createChild(IResource child)
This hook method is called from
getChildren once for every
member of a container resource. |
protected InputStream |
createStream()
Returns an open stream if the corresponding resource implements the
IStorage interface. |
boolean |
equals(Object other)
Returns whether some other object is "equal to" this one
with respect to a structural comparison.
|
String |
getCharset()
Returns the name of a charset encoding to be used when decoding this
stream accessor's contents into characters.
|
Object[] |
getChildren()
Returns an iterator for all children of this object or
null
if there are no children. |
InputStream |
getContents()
Returns an open
InputStream for this object which can be used to retrieve the object's content. |
Image |
getImage()
Returns an image for this object.
|
long |
getModificationDate()
Returns the modification time of this object.
|
String |
getName()
Returns the name of this object.
|
IResource |
getResource()
Returns the corresponding resource for this object.
|
String |
getType()
Returns the type of this object.
|
int |
hashCode()
Returns the hash code of the name.
|
boolean |
isEditable()
Returns
true if this object can be modified. |
boolean |
isReadOnly()
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.
|
ITypedElement |
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.
|
IStatus |
validateEdit(Shell shell)
If the element is read-only, this method should be called
to attempt to make it writable.
|
addContentChangeListener, discardBuffer, fireContentChanged, getContent, removeContentChangeListener, setContentclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitsetContentpublic ResourceNode(IResource resource)
ResourceNode for the given resource.resource - the resourcepublic IResource getResource()
getResource in interface IResourceProviderpublic InputStream getContents() throws CoreException
IStreamContentAccessorInputStream for this object which can be used to retrieve the object's content.
The client is responsible for closing the stream when finished.
Returns null if this object has no streamable contents.getContents in interface IStreamContentAccessorgetContents in class BufferedContentCoreException - if the contents of this object could not be accessedpublic long getModificationDate()
IModificationDateNote that this value should only be used to give the user a general idea of how old the object is.
getModificationDate in interface IModificationDatepublic String getName()
ITypedElementgetName in interface ITypedElementpublic String getType()
ITypedElementFOLDER_TYPE.
The type is used for determining a suitable viewer for this object.getType in interface ITypedElementpublic Image getImage()
ITypedElementgetImage in interface ITypedElementnull if this type of input has no imagepublic boolean equals(Object other)
IStructureComparatorequals would return true
if two methods have the same signature (the argument names and the
method body might differ).equals in interface IStructureComparatorequals in class Objectother - the reference object with which to comparetrue if this object is the same as the other argument; false otherwiseObject.equals(java.lang.Object)public int hashCode()
public Object[] getChildren()
IStructureComparatornull
if there are no children.getChildren in interface IStructureComparatorprotected IStructureComparator createChild(IResource child)
getChildren once for every
member of a container resource. This implementation
creates a new ResourceNode for the given child resource.
Clients may override this method to create a different type of
IStructureComparator or to filter children by returning null.child - the child resource for which a IStructureComparator must be returnedResourceNode for the given child or nullprotected InputStream createStream() throws CoreException
IStorage interface. Otherwise the value null is returned.createStream in class BufferedContentCoreException - if the contents of this storage could not be accessedpublic boolean isEditable()
IEditableContenttrue if this object can be modified.
If it returns false the other methods of this API must not be called.isEditable in interface IEditableContenttrue if this object can be modifiedpublic ITypedElement replace(ITypedElement child, ITypedElement other)
IEditableContent| add: | dest == null | src != null |
| remove: | dest != null | src == null |
| copy: | dest != null | src != null |
replace in interface IEditableContentchild - the existing child of this object to be replaced; if null a new child can be added.other - the new child to be added or replaced; if null an existing child can be removed.destpublic String getCharset()
IEncodedStreamContentAccessornull 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.
getCharset in interface IEncodedStreamContentAccessornullIStreamContentAccessor.getContents()public boolean isReadOnly()
IEditableContentExtensionisReadOnly in interface IEditableContentExtensionpublic IStatus validateEdit(Shell shell)
IEditableContentExtensionvalidateEdit in interface IEditableContentExtensionshell - a shell used to prompt the user if required.OK if things are fine,
otherwise a status describing reasons why modifying the given files is not
reasonable. A status with a severity of CANCEL is returned
if the validation was canceled, indicating the edit should not proceed.
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.