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, setContent
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
setContent
public ResourceNode(IResource resource)
ResourceNode
for the given resource.resource
- the resourcepublic IResource getResource()
getResource
in interface IResourceProvider
public InputStream getContents() throws CoreException
IStreamContentAccessor
InputStream
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 IStreamContentAccessor
getContents
in class BufferedContent
CoreException
- if the contents of this object could not be accessedpublic long getModificationDate()
IModificationDate
Note that this value should only be used to give the user a general idea of how old the object is.
getModificationDate
in interface IModificationDate
public String getName()
ITypedElement
getName
in interface ITypedElement
public String getType()
ITypedElement
FOLDER_TYPE
.
The type is used for determining a suitable viewer for this object.getType
in interface ITypedElement
public Image getImage()
ITypedElement
getImage
in interface ITypedElement
null
if this type of input has no imagepublic boolean equals(Object other)
IStructureComparator
equals
would return true
if two methods have the same signature (the argument names and the
method body might differ).equals
in interface IStructureComparator
equals
in class Object
other
- 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()
IStructureComparator
null
if there are no children.getChildren
in interface IStructureComparator
protected 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 null
protected InputStream createStream() throws CoreException
IStorage
interface. Otherwise the value null
is returned.createStream
in class BufferedContent
CoreException
- if the contents of this storage could not be accessedpublic boolean isEditable()
IEditableContent
true
if this object can be modified.
If it returns false
the other methods of this API must not be called.isEditable
in interface IEditableContent
true
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 IEditableContent
child
- 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.dest
public String getCharset()
IEncodedStreamContentAccessor
null
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 IEncodedStreamContentAccessor
null
IStreamContentAccessor.getContents()
public boolean isReadOnly()
IEditableContentExtension
isReadOnly
in interface IEditableContentExtension
public IStatus validateEdit(Shell shell)
IEditableContentExtension
validateEdit
in interface IEditableContentExtension
shell
- 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.