dke.smwp.serialize
Class PageClassSer

java.lang.Object
  |
  +--dke.smwp.serialize.PageClassSer

public class PageClassSer
extends java.lang.Object

handling of page class serialization for given page class;

Version:
1.0
Author:
Martin Bernauer, Werner Enser

Field Summary
private  FragmentClassSer[] _fcs
          fragment classes mapped to page class
private  java.lang.String[] _ffcParamNames
          parameter names of foundation fragment class
private  FragmentClassSer _foundationFC
          fragment class used by page class as foundation fragment class
private  java.lang.String _maintenanceMode
          used maintenance mode for updating pages (xml documents) when data in application relations was changed
private  java.lang.String _pcName
          name of page class
private  java.lang.String[] _pcParamNames
          parameter names of page class
static java.lang.String _publishToUri
          directory to publish the pages (xml documents) to; prefix of systemId required for _storageMedia == "FILE"
private  java.lang.String _relativeSystemId
          system id relative to publication directory
private  java.lang.String _storageMedia
          location where pages (xml documents) are stored valid values are: DATABASE, FILE, IFS - only database supported
private  java.lang.String _systemId
          name/filename of page
private  java.lang.String _xmlLocalName
          element name within XML document for page
private  java.lang.String _xmlNsUri
          namespace uri für page element in xml document
private  boolean DEBUG
           
static java.lang.String MAINTENANCE_CORESMWP
          name of maintenance mode for incremental updates
static java.lang.String MAINTENANCE_ONTHEFLY
          name of maintenance mode for recreating all pages on changed application relation data
static java.lang.String MAINTENANCE_PULLOFFRAMGENTS
          name of maintenance mode for updating only affected page classes
static java.lang.String STORAGE_DATABASE
          name of storage media for storing xml documents within database - systemID is being used as primary key
static java.lang.String STORAGE_FILE
          name of storage media for storing xml documents in file-system - systemID is being used as filename
static java.lang.String STORAGE_IFS
          name of storage media for storing xml documents in Oracle iFS - systemID is being used as filename
private static java.lang.String TABLENAME_PCFC_MAPPING
          tablename contains mapping which fragment classes are mapped to which page classes
 
Constructor Summary
PageClassSer(java.sql.Connection con, java.lang.String pcName)
          default constructor
 
Method Summary
 void copyTo(PageClassSer target)
          copies the values of this object to target
 PageSer[] determinePagesByIncompleteParameters(java.sql.Connection con, java.util.Hashtable pParams)
          Determines all actual page class parameter from an incomplete set of page parameter values.
 void dropPageClassFromDatabase(java.sql.Connection con, java.lang.String publishToUri)
          removes xml documents of page class' from database
 FragmentClassSer getFoundationFragmentClass()
          get foundation fragment class of page class
 FragmentClassSer[] getFragmentClasses()
          get all fragment classes which are mapped to page class
 java.lang.String getMaintenanceMode()
          get maintenance mode
 java.lang.String getName()
          get page class name
 java.lang.String[] getParameterNames()
          get parameter names
 java.lang.String getStorageMedia()
          get storage media
 java.lang.String getSystemId()
          A page class' system ID is never a full filename, but one that will be expanded by a page with actual parameter values.
 java.lang.String getXMLLocalName()
          get xml Localname
 java.lang.String getXMLNsUri()
          get xml NamespaceURI
 void serializePageClassToDatabase(java.sql.Connection con, java.lang.String publishToUri)
          serializes xml documents into database for current Page Class within database publishToUri is used as prefix to systemId for generated xml document; when transferring the xml documents from database to (IFS-) filesystem the prefix is used as folderpath
 java.lang.String toString()
          generates String representation in following syntax
"page-class " pcName "<" [ pcParamNames { "," pcParamNames } ] ">"
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

DEBUG

private final boolean DEBUG

_pcName

private java.lang.String _pcName
name of page class

_pcParamNames

private java.lang.String[] _pcParamNames
parameter names of page class

_ffcParamNames

private java.lang.String[] _ffcParamNames
parameter names of foundation fragment class

_fcs

private FragmentClassSer[] _fcs
fragment classes mapped to page class

_foundationFC

private FragmentClassSer _foundationFC
fragment class used by page class as foundation fragment class

_publishToUri

public static java.lang.String _publishToUri
directory to publish the pages (xml documents) to; prefix of systemId required for _storageMedia == "FILE"

_systemId

private java.lang.String _systemId
name/filename of page

_relativeSystemId

private java.lang.String _relativeSystemId
system id relative to publication directory

_xmlNsUri

private java.lang.String _xmlNsUri
namespace uri für page element in xml document

_xmlLocalName

private java.lang.String _xmlLocalName
element name within XML document for page

_maintenanceMode

private java.lang.String _maintenanceMode
used maintenance mode for updating pages (xml documents) when data in application relations was changed

_storageMedia

private java.lang.String _storageMedia
location where pages (xml documents) are stored valid values are: DATABASE, FILE, IFS - only database supported

TABLENAME_PCFC_MAPPING

private static final java.lang.String TABLENAME_PCFC_MAPPING
tablename contains mapping which fragment classes are mapped to which page classes

MAINTENANCE_CORESMWP

public static final java.lang.String MAINTENANCE_CORESMWP
name of maintenance mode for incremental updates

MAINTENANCE_PULLOFFRAMGENTS

public static final java.lang.String MAINTENANCE_PULLOFFRAMGENTS
name of maintenance mode for updating only affected page classes

MAINTENANCE_ONTHEFLY

public static final java.lang.String MAINTENANCE_ONTHEFLY
name of maintenance mode for recreating all pages on changed application relation data

STORAGE_DATABASE

public static final java.lang.String STORAGE_DATABASE
name of storage media for storing xml documents within database - systemID is being used as primary key

STORAGE_FILE

public static final java.lang.String STORAGE_FILE
name of storage media for storing xml documents in file-system - systemID is being used as filename

STORAGE_IFS

public static final java.lang.String STORAGE_IFS
name of storage media for storing xml documents in Oracle iFS - systemID is being used as filename
Constructor Detail

PageClassSer

public PageClassSer(java.sql.Connection con,
                    java.lang.String pcName)
             throws java.sql.SQLException
default constructor
Parameters:
con - Connection object
pcName - page class name
Throws:
java.sql.SQLException - fetching meta-data failed
Method Detail

getSystemId

public java.lang.String getSystemId()
A page class' system ID is never a full filename, but one that will be expanded by a page with actual parameter values. A page class' system ID is therefore something like a prefix, e.g. if a page class system ID is '/publish/mypageclass', a specific page would then have the system ID '/publish/mypageclass_my-name.xml'.
Returns:
systemid

getXMLNsUri

public java.lang.String getXMLNsUri()
get xml NamespaceURI
Returns:
NamespaceURI

getXMLLocalName

public java.lang.String getXMLLocalName()
get xml Localname
Returns:
localname

getMaintenanceMode

public java.lang.String getMaintenanceMode()
get maintenance mode
Returns:
maintenance mode

getStorageMedia

public java.lang.String getStorageMedia()
get storage media
Returns:
storage media

getFragmentClasses

public FragmentClassSer[] getFragmentClasses()
get all fragment classes which are mapped to page class
Returns:
fragment classes which are mapped to page class

getFoundationFragmentClass

public FragmentClassSer getFoundationFragmentClass()
get foundation fragment class of page class
Returns:
foundation fragment class

getParameterNames

public java.lang.String[] getParameterNames()
get parameter names
Returns:
parameter names

getName

public java.lang.String getName()
get page class name
Returns:
page class name

dropPageClassFromDatabase

public void dropPageClassFromDatabase(java.sql.Connection con,
                                      java.lang.String publishToUri)
                               throws java.sql.SQLException
removes xml documents of page class' from database
Parameters:
con - Connection handle
publishToUri - directory where the page class/pages are published to; prefix of systemId
Throws:
java.sql.SQLException - fetching meta-data failed

serializePageClassToDatabase

public void serializePageClassToDatabase(java.sql.Connection con,
                                         java.lang.String publishToUri)
                                  throws org.xml.sax.SAXException,
                                         java.sql.SQLException,
                                         java.io.IOException
serializes xml documents into database for current Page Class

within database publishToUri is used as prefix to systemId for generated xml document; when transferring the xml documents from database to (IFS-) filesystem the prefix is used as folderpath

Parameters:
con - Connection handle
publishToUri - directory to publish the page class/pages to; prefix of systemId
Throws:
org.xml.sax.SAXException - xml generation failed
java.sql.SQLException - fetching data failed
java.io.IOException - reading/writing xml document failed

determinePagesByIncompleteParameters

public PageSer[] determinePagesByIncompleteParameters(java.sql.Connection con,
                                                      java.util.Hashtable pParams)
                                               throws java.sql.SQLException
Determines all actual page class parameter from an incomplete set of page parameter values.
Parameters:
con - Connection handle
pParams - Incomplete list of page parameters. The value of missing parameters is determined by the foundation fragment class' fragmentation relation.
Returns:
page classes containing incomplete set of page parameter values
Throws:
java.sql.SQLException - fetching data failed

toString

public java.lang.String toString()
generates String representation in following syntax
"page-class " pcName "<" [ pcParamNames { "," pcParamNames } ] ">"
Overrides:
toString in class java.lang.Object
Returns:
String representation of Page Class

copyTo

public void copyTo(PageClassSer target)
copies the values of this object to target
Parameters:
target - object the values are copied into