com.basecmp.core.persistence.impl
Class PersistentAssetHelper

java.lang.Object
  extended bycom.basecmp.core.persistence.impl.PersistentAssetHelper

public class PersistentAssetHelper
extends java.lang.Object


Field Summary
static java.lang.String[] recognizedDateTimePatterns
           
 
Method Summary
static boolean checkLaunchConditions(java.lang.Long cid, java.lang.String assettype, int maxRecursionLevel, java.util.Set childAssetInfoTree, int checkPolicy, java.util.ArrayList cidStore)
          Überprüft für alle Child-Assets, ob der Online-Status offline oder reworking ist.
static java.lang.Object convertColumnValue(java.lang.Object columnValue, java.lang.String columnDataType)
           
static java.util.Date convertToSqlDate(java.lang.Object columnValue, java.lang.String columnDataType)
           
static void copy(PersistentAsset source, PersistentAsset target)
           
static java.lang.String getCaptionForBinding(java.lang.Long sourceCid, java.lang.Long targetCid, java.lang.String referenceType, boolean targetIsChild)
           
static java.lang.Long getCidForAlternateKey(java.lang.String assetType, java.lang.String alternateKeyColumn, java.lang.Object alternateKeyValue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

recognizedDateTimePatterns

public static java.lang.String[] recognizedDateTimePatterns
Method Detail

checkLaunchConditions

public static boolean checkLaunchConditions(java.lang.Long cid,
                                            java.lang.String assettype,
                                            int maxRecursionLevel,
                                            java.util.Set childAssetInfoTree,
                                            int checkPolicy,
                                            java.util.ArrayList cidStore)
Überprüft für alle Child-Assets, ob der Online-Status offline oder reworking ist.

Sobald eines der Child-Assets im Scope der angegebenen Rekursionstiefe den Online-Status offline oder reworking hat, ist der Rüchgabewert der Funktion false.

Wenn das Flag readWriteChildBindings false ist, wird true zurückgeliefert.

Die übergebene TreeSet-Referenz sollte beim initialen Aufruf (Rekursionslevel 0) leer sein. checkLaunchConditions() füllt dieses TreeSet mit Map-Objekten, wobei pro Child-Asset mindestens ein Map-Objekt erzeugt wird.

Das Map-Objekt enthält die folgenden Einträge:

Für den Fall, das der Child-Asset selbst Childs hat und die maximale Rekursionstiefe noch nicht erreicht ist, wird zusätzlich ein TreeSet erzeugt und in der Map unter dem Namen 'cas' abgelegt. Die Funktion checkLaunchConditions() des Childs wird rekursiv aufgerufen. Ist der Child-Asset eine verlinkte Seite, werden die weiteren Verknüpfungen nicht weiterverfolgt.

Die Bedingungen, untern denen checkLaunchConditions true liefert, sind vom Aufrufparameter Check-Policy abhängig. Es stehen drei unterschiedliche Check-Policies zur Verfügung. Um diese fehlerfrei beim Aufruf festzulegen, definiert das Interface PersistentAsset hierzu drei int-Konstanten:

Zur Zeit sind die Policies direkt innerhalb von checkLaunchConditions() codiert. In neueren Versionen ist es geplant, diese in eigene Policy-Klassen auszulagern und über die Property-Dateien administrierbar zu machen.

INTERACTIVE_LAUNCH_CHECK_POLICY
Sobald ein Child-Assets, unabhängig von seinem Refrenztyp, den Status offline oder revision führt, liefert die Funktion false.
Diese Policy ist auch die Default-Policy bei einem Launch und kommt bei jedem manuellen Launch zum Einsatz.

OVERRULE_LAUNCH_CHECK_POLICY
Der Online-Status der Child-Asset findet keine Beachtung. Rückgabewert sollte immer true sein. Die Info-Tree wird denoch erzeugt!
Diese Policy wird nur vom Launch-Popup beim manuellen Launchen benutzt, wenn trotz aller Warnungen durch das Popup, eine Launch durchgeführt werden soll. Ansonsten kommen die anderen beiden Policies zum Einsatz.

SCHEDULED_LAUNCH_CHECK_POLICY
Child-Assets mit dem Referenz-Typ "page_link" oder dem Online-Status "revision", beeinflussen das Ergebnis der Funktion nicht, d.h. solange nicht ein anderer Child-Asset den Rückgabewert auf false setzt, bleibt der Rückgabewert true.
Wie der Name es schon nahelegt, wird diese Policy beim Auto-Publish für Seiten und Assets benutzt.

Parameters:
cid - Content-ID des Asset
maxRecursionLevel - Rekursionstiefe des checks. Intern berenzt auf 5!!
checkPolicy - Policy-Flag zum bestimmmen, wie die online-stati bestimmter reference-types der childs den Rückgabewert beeinflussen sollen.
Returns:
Liefert false, wenn ein beliebiger Recursionslevel false war. Liefert true, wenn die max Rekursionstiefe überschritten ist. Liefert true, wenn all Child-Assets live sind.
Throws:
java.lang.IllegalArgumentException - Wird geworfen ,wenn childAssetInfoTree null oder nicht leer ist.

convertColumnValue

public static final java.lang.Object convertColumnValue(java.lang.Object columnValue,
                                                        java.lang.String columnDataType)

convertToSqlDate

public static java.util.Date convertToSqlDate(java.lang.Object columnValue,
                                              java.lang.String columnDataType)

copy

public static void copy(PersistentAsset source,
                        PersistentAsset target)

getCaptionForBinding

public static final java.lang.String getCaptionForBinding(java.lang.Long sourceCid,
                                                          java.lang.Long targetCid,
                                                          java.lang.String referenceType,
                                                          boolean targetIsChild)

getCidForAlternateKey

public static java.lang.Long getCidForAlternateKey(java.lang.String assetType,
                                                   java.lang.String alternateKeyColumn,
                                                   java.lang.Object alternateKeyValue)


Copyright © 2004 by basecmp® - Professional Web Solutions