de.intarsys.tools.locator
Class FileLocator

java.lang.Object
  extended by de.intarsys.tools.locator.CommonLocator
      extended by de.intarsys.tools.locator.FileLocator
All Implemented Interfaces:
ISynchronizable, ILocator, ILockSupport

public class FileLocator
extends CommonLocator
implements ILockSupport

File based implementation of ILocator.


Constructor Summary
FileLocator(java.io.File file)
           
FileLocator(java.lang.String path)
           
 
Method Summary
 void delete()
          Delete the artifact referenced by this.
 boolean equals(java.lang.Object obj)
           
 boolean exists()
          Answer true if the location designated by this exists.
 java.io.File getCanonicalFile()
          The canonical file represented by this.
 ILocator getChild(java.lang.String name)
          The locator for the resource name within the context of this.
protected  java.lang.String getEncoding()
          The encoding of the file.
 java.io.File getFile()
          Answer the file represented by this.
 java.lang.String getFullName()
          The full physical name of this.
 java.io.InputStream getInputStream()
          Return an InputStream on the data represented by the receiver.
protected  long getLastModified()
          Answer the timestamp of the last modification.
 long getLength()
          Returns the length of this data container or -1 if unknown
 java.lang.String getLocalName()
          The local name of the receiver within its parent.
 ILock getLock()
           
 java.io.OutputStream getOutputStream()
          Return an OutputStream on the location represented by the receiver.
 ILocator getParent()
          The ILocator that is one hierarchy level up or null.
 IRandomAccess getRandomAccess()
          The IRandomAccess for this.
 java.io.Reader getReader()
          A Reader on the data represented by the receiver.
 java.io.Reader getReader(java.lang.String newEncoding)
          A Reader on the data represented by the receiver for the given encoding.
 java.lang.String getType()
          The type of the resource.
 java.lang.String getTypedName()
          The qualified local name of the receiver within its parent that includes the type specification for the destination if appropriate.
 java.io.Writer getWriter()
          A Writer on the location represented by the receiver.
 java.io.Writer getWriter(java.lang.String newEncoding)
          A Writer on the location represented by the receiver for the given encoding.
 int hashCode()
           
 boolean isDirectory()
          Answer true if the location designated by this is a directory.
 boolean isOutOfSynch()
          true if the component is out of synch.
 boolean isReadOnly()
          true if the specified resource is read only.
 boolean isSynchSynchronous()
           
 boolean isUseTempFile()
          true if temp file should be used.
 ILocator[] listLocators(ILocatorNameFilter filter)
          Return an array of ILocator that are children of the receiver that conform to filter.
 void rename(java.lang.String newName)
          Rename the complete physical name to newName.
protected  void setEncoding(java.lang.String encoding)
           
 void setSynchSynchronous(boolean synchSynchronous)
           
 void setUseTempFile(boolean useTempFile)
           
 void synch()
          Perform a synchronization with the components physical resources.
 java.lang.String toString()
           
 java.net.URL toURL()
          The location designated by this as an URL.
 
Methods inherited from class de.intarsys.tools.locator.CommonLocator
createTempFileLocator, setReadOnly
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileLocator

public FileLocator(java.io.File file)

FileLocator

public FileLocator(java.lang.String path)
Method Detail

delete

public void delete()
            throws java.io.IOException
Description copied from interface: ILocator
Delete the artifact referenced by this.

Specified by:
delete in interface ILocator
Overrides:
delete in class CommonLocator
Throws:
java.io.IOException

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

exists

public boolean exists()
Description copied from interface: ILocator
Answer true if the location designated by this exists.

Specified by:
exists in interface ILocator
Returns:
Answer true if the location designated by this exists.

getCanonicalFile

public java.io.File getCanonicalFile()
The canonical file represented by this.

Returns:
The canonical file represented by this.

getChild

public ILocator getChild(java.lang.String name)
Description copied from interface: ILocator
The locator for the resource name within the context of this. This may for example be an ILocator to a file within a directory.

Specified by:
getChild in interface ILocator
Parameters:
name - The name of the resource to be located.
Returns:
The ILocator for the resource with the name "name" within the context of this.

getEncoding

protected java.lang.String getEncoding()
The encoding of the file.

Returns:
Returns the encoding.

getFile

public java.io.File getFile()
Answer the file represented by this.

Returns:
The canonical file represented by this.

getFullName

public java.lang.String getFullName()
Description copied from interface: ILocator
The full physical name of this.

This method returns a representation that is proprietary to the underlying physical representation, for example a file name, a SQL statement or so on.

Specified by:
getFullName in interface ILocator
Returns:
The full physical name of the receiver.

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
Description copied from interface: ILocator
Return an InputStream on the data represented by the receiver.

Specified by:
getInputStream in interface ILocator
Returns:
An InputStream on the data represented by the receiver.
Throws:
java.io.IOException

getLastModified

protected long getLastModified()
Answer the timestamp of the last modification.

Returns:
the timestamp of the last modification.

getLength

public long getLength()
               throws java.io.IOException
Description copied from interface: ILocator
Returns the length of this data container or -1 if unknown

Specified by:
getLength in interface ILocator
Overrides:
getLength in class CommonLocator
Returns:
the length of this data container, measured in bytes.
Throws:
java.io.IOException - if an I/O error occurs.

getLocalName

public java.lang.String getLocalName()
Description copied from interface: ILocator
The local name of the receiver within its parent.

Specified by:
getLocalName in interface ILocator
Returns:
The local name of the receiver within its parent.

getLock

public ILock getLock()
Specified by:
getLock in interface ILockSupport

getOutputStream

public java.io.OutputStream getOutputStream()
                                     throws java.io.IOException
Description copied from interface: ILocator
Return an OutputStream on the location represented by the receiver.

Specified by:
getOutputStream in interface ILocator
Returns:
An OutputStream on the location represented by the receiver.
Throws:
java.io.IOException

getParent

public ILocator getParent()
Description copied from interface: ILocator
The ILocator that is one hierarchy level up or null. This may be for example the directory where the currently designated resource is found.

Specified by:
getParent in interface ILocator
Returns:
The ILocatorthat is one hierarchy level up or null.

getRandomAccess

public IRandomAccess getRandomAccess()
                              throws java.io.IOException
Description copied from interface: ILocator
The IRandomAccess for this.

Specified by:
getRandomAccess in interface ILocator
Returns:
The IRandomAccess for this.
Throws:
java.io.IOException

getReader

public java.io.Reader getReader()
                         throws java.io.IOException
Description copied from interface: ILocator
A Reader on the data represented by the receiver.

Specified by:
getReader in interface ILocator
Returns:
A Reader on the data represented by the receiver.
Throws:
java.io.IOException

getReader

public java.io.Reader getReader(java.lang.String newEncoding)
                         throws java.io.IOException
Description copied from interface: ILocator
A Reader on the data represented by the receiver for the given encoding.

Specified by:
getReader in interface ILocator
Parameters:
newEncoding - The encoding.
Returns:
A Reader on the data represented by the receiver for the given encoding.
Throws:
java.io.IOException

getType

public java.lang.String getType()
Description copied from interface: ILocator
The type of the resource. This may be for example a mime type or the file extension of the underlying file.

Specified by:
getType in interface ILocator
Returns:
The type of the resource

getTypedName

public java.lang.String getTypedName()
Description copied from interface: ILocator
The qualified local name of the receiver within its parent that includes the type specification for the destination if appropriate. This is for example a filename with its correct suffix. Some locator may return the same name as "getLocalName".

Specified by:
getTypedName in interface ILocator
Returns:
The qualified local name of the receiver within its parent that includes the type specification for the destination if appropriate.

getWriter

public java.io.Writer getWriter()
                         throws java.io.IOException
Description copied from interface: ILocator
A Writer on the location represented by the receiver.

Specified by:
getWriter in interface ILocator
Returns:
A Writer on the location represented by the receiver.
Throws:
java.io.IOException

getWriter

public java.io.Writer getWriter(java.lang.String newEncoding)
                         throws java.io.IOException
Description copied from interface: ILocator
A Writer on the location represented by the receiver for the given encoding.

Specified by:
getWriter in interface ILocator
Parameters:
newEncoding - The encoding.
Returns:
A Writer on the location represented by the receiver for the given encoding.
Throws:
java.io.IOException

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

isDirectory

public boolean isDirectory()
Description copied from interface: ILocator
Answer true if the location designated by this is a directory. A directory location serves as a container for other resources, you can never getInputStream on this.

Specified by:
isDirectory in interface ILocator
Returns:
Answer true if the location designated by this is a directory.

isOutOfSynch

public boolean isOutOfSynch()
Description copied from interface: ISynchronizable
true if the component is out of synch.

Specified by:
isOutOfSynch in interface ISynchronizable
Returns:
true if the component is out of synch.

isReadOnly

public boolean isReadOnly()
Description copied from interface: ILocator
true if the specified resource is read only.

Specified by:
isReadOnly in interface ILocator
Overrides:
isReadOnly in class CommonLocator
Returns:
true if the specified resource is read only.

isSynchSynchronous

public boolean isSynchSynchronous()

isUseTempFile

public boolean isUseTempFile()
true if temp file should be used.

Returns:
true if temp file should be used.

listLocators

public ILocator[] listLocators(ILocatorNameFilter filter)
                        throws java.io.IOException
Description copied from interface: ILocator
Return an array of ILocator that are children of the receiver that conform to filter. This method never returns null.

Specified by:
listLocators in interface ILocator
Parameters:
filter - The filter used to examine the child resources.
Returns:
An array of ILocator objects that conform to the filter argument.
Throws:
java.io.IOException

rename

public void rename(java.lang.String newName)
            throws java.io.IOException
Description copied from interface: ILocator
Rename the complete physical name to newName.

Specified by:
rename in interface ILocator
Overrides:
rename in class CommonLocator
Parameters:
newName - The new name of the ILocator. The new name is expected to contain both local and type part of the name.
Throws:
java.io.IOException

setEncoding

protected void setEncoding(java.lang.String encoding)

setSynchSynchronous

public void setSynchSynchronous(boolean synchSynchronous)
Parameters:
synchSynchronous -

setUseTempFile

public void setUseTempFile(boolean useTempFile)
Parameters:
useTempFile -

synch

public void synch()
Description copied from interface: ISynchronizable
Perform a synchronization with the components physical resources.

In case of a scheduled synchronization this may be called by an external daemon.

Specified by:
synch in interface ISynchronizable

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toURL

public java.net.URL toURL()
Description copied from interface: ILocator
The location designated by this as an URL.

Specified by:
toURL in interface ILocator
Returns:
The location designated by this as an URL.