com.hlcl.rql.as
Class FileElement

java.lang.Object
  extended by com.hlcl.rql.as.Element
      extended by com.hlcl.rql.as.FileElement
All Implemented Interfaces:
CmsClientContainer, ContentElement, FolderContainer, PageContainer, ProjectContainer
Direct Known Subclasses:
ImageElement, MediaElement

public abstract class FileElement
extends Element
implements FolderContainer

Diese Klasse beschreibt ein File-Element (Media oder Image) einer Seite.

Author:
LEJAFR

Field Summary
 
Fields inherited from class com.hlcl.rql.as.Element
value
 
Constructor Summary
FileElement(Page page, TemplateElement templateElement, java.lang.String name, java.lang.String elementGuid, java.lang.String value, java.lang.String folderGuid)
          FileElement constructor comment.
 
Method Summary
protected  void checkBeforeChange(java.lang.String filename)
          Optionale Prüfmöglichkeit für Subklassen.
 void downloadToFile(java.io.File targetFile, boolean runsOnServer)
          Lädt für dieses FileElement die Datei aus dem RD ImageCache und speichert sie in der gegebenen Datei targetFile ab.
 void downloadToFile(java.lang.String targetPathName, boolean runsOnServer)
          Lädt für dieses FileElement die Datei aus dem RD ImageCache und speichert sie unter dem gegebenen Pfad ab.
 java.net.URL getDownloadUrl(boolean runsOnServer)
          Liefert die URL, um ein Asset aus dem CMS ImageCache herunterzuladen (parameter downloadUrl in rql_fw.properties).
 java.lang.String getDownloadUrlString(boolean runsOnServer)
          Liefert die download URL als String dieses File-Elements.
 java.lang.String getExtender(java.lang.String filename)
          Liefert den Extender (immer lowercase) des gegebenen Files zurück.
 java.lang.String getFilename()
          Liefert den Dateinamen dieses Files oder null, falls dieses Element kein Dateinamen besitzt und auch kein Defaultwert im Templateelement definiert ist.
 java.lang.String getFilenameExtender()
          Liefert den Extender (immer lowercase) dieses MediaElements zurück.
 java.lang.String getFilenameWithoutExtender()
          Liefert nur den Dateinamen dieses Files; ohne Extender.
 Folder getFolder()
          Liefert den Folder dieses Dateielements.
 java.lang.String getFolderGuid()
          Liefert die RedDot GUID des Folders, aus dem das File kommt.
 Folder getTemplateElementFolder()
          Liefert den im Template-Element eingestellten Folder für dieses FileElement.
 java.lang.String getValueAsString()
          Returns the filename as content element's value.
 boolean hasFile()
          Liefert true, falls dieses file element eine Datei hat, sonst false;
 boolean isCombinedUpdateSupported()
          Liefert false, da alle FileElemente die gemeinsame Änderung mit nur einem RQL nicht unterstützen.
 void setFilename(java.lang.String filename)
          Aendert den Namen des zugewiesenen Files.
 void setFilename(java.lang.String filename, AssetManagerSubFolder subFolder)
          Aendert den Namen des zugewiesenen Files aus einem AssetManager-Unterordner.
 void setFilename(java.lang.String filename, java.lang.String subFolderName)
          Aendert den Namen des zugewiesenen Files aus einem AssetManager-Unterordner.
 void setFilenameWithoutCheck(java.lang.String filename)
          Aendert den Namen des zugewiesenen Files.
protected  void setValue(java.lang.Object valueObj)
          Aendert polymorph den Wert dieses Elements.
protected  void setValue(java.lang.String filename, AssetManagerSubFolder subFolder)
          Aendert den Wert dieses Fileelements, wenn es aus einem Unterordner stammt.
 void updateFolderChange()
          Schreibt den aktuellen Bildnamen dieses Dateielements neu und aktualisiert dabei den neuen templatefolder in diesem Element.
 
Methods inherited from class com.hlcl.rql.as.Element
callCms, callCmsWithoutParsing, deleteValue, getCmsClient, getElementGuid, getLogonGuid, getName, getPage, getPageGuid, getProject, getProjectGuid, getSessionKey, getTemplateElement, getTemplateElementName, getValue, hasTemplateDefaultValue, isEmpty, isValueEntered, readElementNode, setValue, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.hlcl.rql.as.ProjectContainer
getProject, getProjectGuid, getSessionKey
 
Methods inherited from interface com.hlcl.rql.as.CmsClientContainer
callCms, callCmsWithoutParsing, getCmsClient, getLogonGuid
 

Constructor Detail

FileElement

public FileElement(Page page,
                   TemplateElement templateElement,
                   java.lang.String name,
                   java.lang.String elementGuid,
                   java.lang.String value,
                   java.lang.String folderGuid)
FileElement constructor comment.

Parameters:
page - Seite, die diesen Container Link beinhaltet.
templateElement - TemplateElement auf dem dieses Element basiert
name - Name des Elements
elementGuid - GUID dieses Elements
value - Dateiname des Files
Method Detail

checkBeforeChange

protected void checkBeforeChange(java.lang.String filename)
                          throws RQLException
Optionale Prüfmöglichkeit für Subklassen.

Throws:
RQLException

getDownloadUrl

public java.net.URL getDownloadUrl(boolean runsOnServer)
                            throws RQLException
Liefert die URL, um ein Asset aus dem CMS ImageCache herunterzuladen (parameter downloadUrl in rql_fw.properties).

Parameters:
runsOnServer - =true, if used from webapp or batch on CMS server; the domain name will be replace with localhost

=false, if used from any other client; the configured URL will be used unchanged

Throws:
RQLException

getDownloadUrlString

public java.lang.String getDownloadUrlString(boolean runsOnServer)
                                      throws RQLException
Liefert die download URL als String dieses File-Elements.

Parameters:
runsOnServer - =true, if used from webapp or batch on CMS server; the domain name will be replace with localhost

=false, if used from any other client; the configured URL will be used unchanged

Throws:
RQLException

getExtender

public java.lang.String getExtender(java.lang.String filename)
Liefert den Extender (immer lowercase) des gegebenen Files zurück.


getFilenameExtender

public java.lang.String getFilenameExtender()
                                     throws RQLException
Liefert den Extender (immer lowercase) dieses MediaElements zurück.

Liefert null, fall keine Datei gesetzt ist.

Throws:
RQLException

getFilename

public java.lang.String getFilename()
                             throws RQLException
Liefert den Dateinamen dieses Files oder null, falls dieses Element kein Dateinamen besitzt und auch kein Defaultwert im Templateelement definiert ist.

Returns:
String
Throws:
RQLException

getFilenameWithoutExtender

public java.lang.String getFilenameWithoutExtender()
                                            throws RQLException
Liefert nur den Dateinamen dieses Files; ohne Extender. Liefert null, falls kein '.' im Dateinamen gefunden werden konnte oder kein Dateiname gesetzt ist.

Throws:
RQLException

getFolder

public Folder getFolder()
                 throws RQLException
Liefert den Folder dieses Dateielements.

Ist ein file gesetzt wird der Ordner oder auch AssetManager-Unterordner geliefert, aus dem das file zugewiesen wurde.

Ist kein file gesetzt wird der default Ordner aus dem template element geliefert.

Specified by:
getFolder in interface FolderContainer
Throws:
RQLException

getFolderGuid

public java.lang.String getFolderGuid()
Liefert die RedDot GUID des Folders, aus dem das File kommt. Kann sowohl ein AssetManager Ordner oder auch ein Unterordner sein.

Specified by:
getFolderGuid in interface FolderContainer

getTemplateElementFolder

public Folder getTemplateElementFolder()
                                throws RQLException
Liefert den im Template-Element eingestellten Folder für dieses FileElement.

Throws:
RQLException

hasFile

public boolean hasFile()
                throws RQLException
Liefert true, falls dieses file element eine Datei hat, sonst false;

Throws:
RQLException

isCombinedUpdateSupported

public boolean isCombinedUpdateSupported()
                                  throws RQLException
Liefert false, da alle FileElemente die gemeinsame Änderung mit nur einem RQL nicht unterstützen.

Overrides:
isCombinedUpdateSupported in class Element
Throws:
RQLException
See Also:
Page.setElementValues(Map)

setFilename

public void setFilename(java.lang.String filename)
                 throws RQLException
Aendert den Namen des zugewiesenen Files. Es wird geprüft, ob das File im Templateordner existiert.

Throws:
MissingFileException
RQLException
See Also:
setFilename(String, AssetManagerSubFolder)

setFilename

public void setFilename(java.lang.String filename,
                        AssetManagerSubFolder subFolder)
                 throws RQLException
Aendert den Namen des zugewiesenen Files aus einem AssetManager-Unterordner. Es wird geprüft, ob das File im gegebenen Unterordner existiert.

Throws:
MissingFileException
WrongTypeException
RQLException
See Also:
setFilename(String), setFilename(String, String)

setFilename

public void setFilename(java.lang.String filename,
                        java.lang.String subFolderName)
                 throws RQLException
Aendert den Namen des zugewiesenen Files aus einem AssetManager-Unterordner. Es wird geprüft, ob das File im gegebenen Unterordner existiert.

Throws:
MissingFileException
WrongTypeException
RQLException
See Also:
setFilename(String, AssetManagerSubFolder), setFilename(String)

setFilenameWithoutCheck

public void setFilenameWithoutCheck(java.lang.String filename)
                             throws RQLException
Aendert den Namen des zugewiesenen Files. Es wird NICHT geprüft, ob das File im Templateornder existiert, um die Performance zu steigern.

Throws:
MissingFileException
RQLException
See Also:
setFilename(String)

setValue

protected void setValue(java.lang.Object valueObj)
                 throws RQLException
Aendert polymorph den Wert dieses Elements. Der Typ von valuObj muss zum Typ des Elementes passen.

Specified by:
setValue in class Element
Parameters:
valueObj - valueObj muss ein String mit dem Dateinamen sein
Throws:
RQLException

setValue

protected void setValue(java.lang.String filename,
                        AssetManagerSubFolder subFolder)
                 throws RQLException
Aendert den Wert dieses Fileelements, wenn es aus einem Unterordner stammt.

Throws:
RQLException
See Also:
Element.setValue(String)

downloadToFile

public void downloadToFile(java.io.File targetFile,
                           boolean runsOnServer)
                    throws RQLException
Lädt für dieses FileElement die Datei aus dem RD ImageCache und speichert sie in der gegebenen Datei targetFile ab.

Achtung: Die Extender sollten zueinander passen! Sie werden hierbei nicht geprüft.

Parameters:
runsOnServer - =true, if used from webapp or batch on CMS server; the domain name will be replace with localhost

=false, if used from any other client; the configured URL will be used unchanged

Throws:
RQLException

downloadToFile

public void downloadToFile(java.lang.String targetPathName,
                           boolean runsOnServer)
                    throws RQLException
Lädt für dieses FileElement die Datei aus dem RD ImageCache und speichert sie unter dem gegebenen Pfad ab.

Achtung: Die Extender sollten zueinander passen! Sie werden hierbei nicht geprüft.

Parameters:
runsOnServer - =true, if used from webapp or batch on CMS server; the domain name will be replace with localhost

=false, if used from any other client; the configured URL will be used unchanged

Throws:
RQLException

updateFolderChange

public void updateFolderChange()
                        throws RQLException
Schreibt den aktuellen Bildnamen dieses Dateielements neu und aktualisiert dabei den neuen templatefolder in diesem Element.

Throws:
RQLException

getValueAsString

public java.lang.String getValueAsString()
                                  throws RQLException
Returns the filename as content element's value. Return an empty string, if no filename is set.

Specified by:
getValueAsString in interface ContentElement
Specified by:
getValueAsString in class Element
Throws:
RQLException
See Also:
getFilename()