dke.smwp.fragmentation
Class PageClass

java.lang.Object
  |
  +--dke.smwp.fragmentation.PageClass

public class PageClass
extends java.lang.Object

class for handling page class generation and manipulation;

Version:
1.0
Author:
Werner Enser

Field Summary
private  java.lang.String _genApproach
          defines type of update to page (xml document), when tuples within fragments (which are mapped to page class) are inserted/deleted/updated
private  java.lang.String _ns_uri
          namespace used for page element when published as xml document
private  java.lang.String _pc_name
          element name for page when published as xml document
private  java.lang.String[] _pc_params
          names of parameters, which are used by page class
private  java.lang.String _pc_root_name
          page class root name; first part of page class name
private  java.lang.String _systemid_root
          filepath and first part of filename for generated pages (xml documents)
private  XMLPublishPCStatement _xmlPublishPCStmt
          publication information for page class when published as xml document
static java.lang.String GENERATION_APPROACH_CORE_SMWP
          publication strategy, incrementally modify affected pages when fragment class data was modified
static java.lang.String GENERATION_APPROACH_ON_THE_FLY
          publicaton strategy, which re-creates ALL PAGES of page class when fragment class data was modified
static java.lang.String GENERATION_APPROACH_PULL_OF_FRAGMENTS
          publication strategy, which re-creates affected pages when fragment class data was modified
 
Constructor Summary
PageClass(java.lang.String pc_longName)
          constructor initializing page class object for page class designated by pc_longName
PageClass(java.lang.String pc_rootName, java.lang.String[] pc_paramNames)
          constructor initializing page class object for existing page class
PageClass(java.lang.String pc_rootName, java.lang.String[] pc_paramNames, java.lang.String genApproach, java.lang.String systemid_root, XMLPublishPCStatement xmlPublishPCStmt)
          constructor - generates new page class
 
Method Summary
 void addFoundationFragmentClass(FragmentClass fragmentClass, java.util.Hashtable parameterMapping)
          adds the foundation fragment class to page class; number of parameters for page class and foundation fragment class must be equal
 void addFragmentClass(FragmentClass fragmentClass, java.util.Hashtable parameterMapping)
          adds fragment class mapping to page class;
 void addPageReference(FragmentClass fc, ExternalPageRef pageRef)
          adds external page reference to page class;
 void addPageReference(FragmentClass fc, InternalPageRef pageRef)
          adds internal page reference to page class;
 void createXMLDocument()
          create xml documnets based on Page Class definition (metadata)
 void dropFragmentClass(FragmentClass fc)
          remove fragment class mapping and recreate xml documents for new page class definition
 void dropPageReferences(FragmentClass fc)
          drops internal and external page references of fragment class, which is source of this page reference;
 void dropPageTargetReferences(FragmentClass fc)
          drops internal and external page references of fragment class, which is target of this page reference;
 void dropXMLDocument()
          drops all published pages (xml documents) from this page class;
 java.lang.String getGenerationApproach()
          gets generation approach for page class
 java.lang.String getNsURI()
          gets page class namespace
 java.lang.String getPCElementName()
          gets page class element name
 java.lang.String getPcName()
          gets page class name
private  java.lang.String getRootName(java.lang.String longName, java.lang.String[] paramNames)
          gets root name of page class;
 java.lang.String getSystemidRoot()
          gets system id
 java.lang.String showPageClass()
          generates String representation of page class;
 java.lang.String toString()
          generates page class name for string output; pc_rootName "<" [ paramName { "," paramName } ] ">"
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

_genApproach

private java.lang.String _genApproach
defines type of update to page (xml document), when tuples within fragments (which are mapped to page class) are inserted/deleted/updated

_ns_uri

private java.lang.String _ns_uri
namespace used for page element when published as xml document

_pc_name

private java.lang.String _pc_name
element name for page when published as xml document

_pc_root_name

private java.lang.String _pc_root_name
page class root name; first part of page class name

_pc_params

private java.lang.String[] _pc_params
names of parameters, which are used by page class

_systemid_root

private java.lang.String _systemid_root
filepath and first part of filename for generated pages (xml documents)

_xmlPublishPCStmt

private XMLPublishPCStatement _xmlPublishPCStmt
publication information for page class when published as xml document

GENERATION_APPROACH_CORE_SMWP

public static java.lang.String GENERATION_APPROACH_CORE_SMWP
publication strategy, incrementally modify affected pages when fragment class data was modified

GENERATION_APPROACH_PULL_OF_FRAGMENTS

public static java.lang.String GENERATION_APPROACH_PULL_OF_FRAGMENTS
publication strategy, which re-creates affected pages when fragment class data was modified

GENERATION_APPROACH_ON_THE_FLY

public static java.lang.String GENERATION_APPROACH_ON_THE_FLY
publicaton strategy, which re-creates ALL PAGES of page class when fragment class data was modified
Constructor Detail

PageClass

public PageClass(java.lang.String pc_longName)
          throws java.sql.SQLException,
                 SMWPException
constructor initializing page class object for page class designated by pc_longName
Parameters:
pc_longName - name of page class which is to be initialized
Throws:
java.sql.SQLException - error fetching meta-data
SMWPException - no page class by name pc_longName exists
java.sql.SQLException - fetching meta-data failed

PageClass

public PageClass(java.lang.String pc_rootName,
                 java.lang.String[] pc_paramNames,
                 java.lang.String genApproach,
                 java.lang.String systemid_root,
                 XMLPublishPCStatement xmlPublishPCStmt)
          throws java.sql.SQLException
constructor - generates new page class
Parameters:
pc_rootName - root name of page class which is to be created
pc_paramNames - parameter names which are used by page class
genApproach - type of page modification how pages are being kept up to date, when data in related fragment classes is modified
systemid_root - filepath and first part of filename used for publication of pages (xml documents)
xmlPublishPCStmt - xml publication information for page class
Throws:
java.sql.SQLException - writing meta-data failed

PageClass

public PageClass(java.lang.String pc_rootName,
                 java.lang.String[] pc_paramNames)
          throws java.sql.SQLException,
                 SMWPException
constructor initializing page class object for existing page class
Parameters:
pc_rootName - root name of page class
pc_paramNames - parameter names used by page class
Throws:
java.sql.SQLException - failed to fetch meta-data
SMWPException - page class does not exist
Method Detail

addFoundationFragmentClass

public void addFoundationFragmentClass(FragmentClass fragmentClass,
                                       java.util.Hashtable parameterMapping)
                                throws java.sql.SQLException
adds the foundation fragment class to page class;

number of parameters for page class and foundation fragment class must be equal

Parameters:
fragmentClass - fragment class which is used as foundation fragment class
parameterMapping - Hashtable containing parameter name mapping between fragment class and page class; using parameter names of page class as key
Throws:
java.sql.SQLException - failed to write meta data

addFragmentClass

public void addFragmentClass(FragmentClass fragmentClass,
                             java.util.Hashtable parameterMapping)
                      throws java.sql.SQLException,
                             SMWPException
adds fragment class mapping to page class;
Parameters:
fragmentClass - fragment class which mapped to page class
parameterMapping - Hashtable containing parameter name mapping between fragment class and page class; using parameter names of page class as key
Throws:
java.sql.SQLException - failed to write meta data
SMWPException - fragment class already mapped to page class

addPageReference

public void addPageReference(FragmentClass fc,
                             InternalPageRef pageRef)
                      throws java.sql.SQLException,
                             SMWPException
adds internal page reference to page class;
Parameters:
fc - fragment class which is source for reference
pageRef - page reference data
Throws:
java.sql.SQLException - writing meta-data failed
java.sql.SQLException - regeneration of pages (xml documents) failed

addPageReference

public void addPageReference(FragmentClass fc,
                             ExternalPageRef pageRef)
                      throws java.sql.SQLException,
                             SMWPException
adds external page reference to page class;
Parameters:
fc - fragment class which is source for reference
pageRef - page reference data
Throws:
java.sql.SQLException - writing meta-data failed
java.sql.SQLException - regeneration of pages (xml documents) failed

createXMLDocument

public void createXMLDocument()
                       throws SMWPException
create xml documnets based on Page Class definition (metadata)
Throws:
SMWPException - creating xml documents failed

dropFragmentClass

public void dropFragmentClass(FragmentClass fc)
                       throws SMWPException
remove fragment class mapping and recreate xml documents for new page class definition
Parameters:
fc - fragment class which is to be removed
Throws:
SMWPException - fragment class not mapped to page class, page recreation failed

dropXMLDocument

public void dropXMLDocument()
                     throws java.sql.SQLException
drops all published pages (xml documents) from this page class;
Throws:
java.sql.SQLException - deletion of xml documents failed

dropPageReferences

public void dropPageReferences(FragmentClass fc)
                        throws java.sql.SQLException
drops internal and external page references of fragment class, which is source of this page reference;
Parameters:
fc - fragment class (which is source of reference) whose page references are to be removed
Throws:
java.sql.SQLException - deleting meta-data failed

dropPageTargetReferences

public void dropPageTargetReferences(FragmentClass fc)
                              throws java.sql.SQLException
drops internal and external page references of fragment class, which is target of this page reference;
Parameters:
fc - fragment class (which is source of reference) whose page references are to be removed
Throws:
java.sql.SQLException - deleting meta-data failed

getPcName

public java.lang.String getPcName()
gets page class name

getNsURI

public java.lang.String getNsURI()
gets page class namespace

getPCElementName

public java.lang.String getPCElementName()
gets page class element name

getGenerationApproach

public java.lang.String getGenerationApproach()
gets generation approach for page class

getSystemidRoot

public java.lang.String getSystemidRoot()
gets system id

getRootName

private java.lang.String getRootName(java.lang.String longName,
                                     java.lang.String[] paramNames)
gets root name of page class;
Parameters:
longName - name of page class
paramNames - names of parameters used by page class
Returns:
root name of page class

showPageClass

public java.lang.String showPageClass()
generates String representation of page class;
Returns:
String representation of page class

toString

public java.lang.String toString()
generates page class name for string output;

pc_rootName "<" [ paramName { "," paramName } ] ">"

Overrides:
toString in class java.lang.Object
Returns:
page class name