data.nodes
Class Directory

java.lang.Object
  extended by xml.Xml_Core_ops_
      extended by data.nodes.Directory
All Implemented Interfaces:
DataNode

public class Directory
extends Xml_Core_ops_
implements DataNode

Repräsentiert konkretes Verzeichnis als Directory-Node. Speicherung von Infos erfolgt in optionalen dirinfo.xml-Files. Falls keine dirinfo da, wird auch keine angelegt. Das geschieht nur wenn explizit ein Flag gesetzt wird, d.h. dat Ding soll nur dahin wo nötig. TODO: Instanz ist nicht Thread-sicher!

Author:
Thorsten Berger, Steffen Dienst

Field Summary
static java.lang.String INVISIBLE
           
 
Constructor Summary
Directory(java.lang.String path)
           
Directory(java.lang.String path, java.lang.String restrictPath)
           
 
Method Summary
 Directory addDirectory(java.lang.String dirname, java.lang.String desc)
           
 FileNode addFile(java.lang.String filename, java.lang.String desc, byte[] content)
           
 void delete()
           
 java.lang.String getAbsPath()
          Liefert physikalischen Pfad dieser Node zurück
 java.lang.String getDescription()
          Liefert zugehörigen Beschreibungstext.
 FileNode getFile(java.lang.String name)
           
 FileNode[] getFiles()
          Alle Files im Verz. ohne dirinfo.xml
 FileNode[] getFiles(boolean dirInfo)
           
 FileNode[] getFiles(boolean dirInfo, java.lang.String extension)
          Alle Files im Verz.
 FileNode[] getFiles(java.lang.String extension)
           
 java.lang.String getIcon()
           
 java.lang.String getIdentification()
           
 java.lang.String getPath()
          Liefert relativen Pfad im Data-Verzeichnis
 java.lang.String getRawDescription()
          Liefert zugehörigen Beschreibungstext.
 Directory getSubDir(java.lang.String name)
           
 Directory[] getSubDirs()
          Alle Unterverzeichnisse
 DataNode[] getSubNodes()
           
 boolean hasFlag(java.lang.String flagname)
           
 boolean isFileRemovable(java.lang.String filename)
           
 boolean isFolder()
           
 boolean isRemovable()
           
 long lastModified()
           
 void removeFlag(java.lang.String flagname)
           
static java.lang.String removePathSeparator(java.lang.String s, boolean leading, boolean trailing)
          Methode, um Pfadtrenner am Anfang bzw.
 void setDescription(java.lang.String desc)
          Setzt neuen Beschreibungstext für diese Node.
 void setFlag(java.lang.String flagname)
           
 boolean stillExisting()
           
 
Methods inherited from class xml.Xml_Core_ops_
look4
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INVISIBLE

public static final java.lang.String INVISIBLE
See Also:
Constant Field Values
Constructor Detail

Directory

public Directory(java.lang.String path,
                 java.lang.String restrictPath)
          throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

Directory

public Directory(java.lang.String path)
          throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException
Method Detail

getPath

public java.lang.String getPath()
Liefert relativen Pfad im Data-Verzeichnis

Returns:

getAbsPath

public java.lang.String getAbsPath()
Liefert physikalischen Pfad dieser Node zurück

Returns:
String mit systemspezifischem Pfad

getDescription

public java.lang.String getDescription()
Liefert zugehörigen Beschreibungstext. Wenn keiner existiert, den Verzeichnisnamen.

Specified by:
getDescription in interface DataNode
Returns:

getRawDescription

public java.lang.String getRawDescription()
Liefert zugehörigen Beschreibungstext. Wenn keiner existiert, null.

Returns:

setDescription

public void setDescription(java.lang.String desc)
Setzt neuen Beschreibungstext für diese Node. Schon existente Beschreibungen werden überschrieben.

Parameters:
desc - neue Beschreibung

getIdentification

public java.lang.String getIdentification()
Specified by:
getIdentification in interface DataNode
See Also:
DataNode

setFlag

public void setFlag(java.lang.String flagname)

hasFlag

public boolean hasFlag(java.lang.String flagname)

removeFlag

public void removeFlag(java.lang.String flagname)

addFile

public FileNode addFile(java.lang.String filename,
                        java.lang.String desc,
                        byte[] content)
                 throws java.io.IOException,
                        java.lang.IllegalArgumentException
Throws:
java.io.IOException
java.lang.IllegalArgumentException

addDirectory

public Directory addDirectory(java.lang.String dirname,
                              java.lang.String desc)
                       throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

getSubNodes

public DataNode[] getSubNodes()
Specified by:
getSubNodes in interface DataNode

getSubDirs

public Directory[] getSubDirs()
Alle Unterverzeichnisse

Returns:

getFiles

public FileNode[] getFiles()
Alle Files im Verz. ohne dirinfo.xml

Returns:

getFiles

public FileNode[] getFiles(boolean dirInfo)

getFiles

public FileNode[] getFiles(java.lang.String extension)

getFiles

public FileNode[] getFiles(boolean dirInfo,
                           java.lang.String extension)
Alle Files im Verz.

Parameters:
dirInfo - dirinfo.xml auch mit dabei?
extension - nur Files mit dieser Extension ("." wird nicht automatisch hinzugefügt)
Returns:

getFile

public FileNode getFile(java.lang.String name)
                 throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

getSubDir

public Directory getSubDir(java.lang.String name)
                    throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

isFolder

public boolean isFolder()
Specified by:
isFolder in interface DataNode
See Also:
DataNode.isFolder()

getIcon

public java.lang.String getIcon()
Specified by:
getIcon in interface DataNode

isRemovable

public boolean isRemovable()
Returns:

delete

public void delete()

stillExisting

public boolean stillExisting()

lastModified

public long lastModified()

removePathSeparator

public static java.lang.String removePathSeparator(java.lang.String s,
                                                   boolean leading,
                                                   boolean trailing)
Methode, um Pfadtrenner am Anfang bzw. Ende eines Strings zu entfernen.

Parameters:
s -
leading -
trailing -
Returns:

isFileRemovable

public boolean isFileRemovable(java.lang.String filename)