dke.smwp.serialize
Class FragmentClassSer

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

public class FragmentClassSer
extends java.lang.Object

class handling fragment serialization for given framgnet class;

Version:
1.0
Author:
Werner Enser

Field Summary
private  java.lang.String _fcName
          fragment class name
private  java.lang.String[] _fcParamNames
          names of parameters used by fragment class
private  java.util.Hashtable _fcParams
          Fragment class parameters.
private  java.lang.String _fragmentationTableName
          name of fragmentation relation
private  java.lang.String _tupleTableName
           
private  java.lang.String _xmlFragmentLocalName
          fragment name
private  java.lang.String _xmlNsUri
          fragment namespace uri
private  java.lang.String _xmlTupleLocalName
          tuple name
static int FC_PARAM_AS_KEY
           
static int PC_PARAM_AS_KEY
           
private  java.lang.String TABLENAME_PARAM_MAPPING
          table containing parameter mapping
 
Constructor Summary
FragmentClassSer(java.sql.Connection con, java.lang.String fcName)
          constructor
FragmentClassSer(java.sql.Connection con, java.lang.String fc_longName, TColumnTable fr_tuple)
          constructor
 
Method Summary
 void copyTo(FragmentClassSer target)
          copies itself to target object
 java.lang.String getFcName()
          gets fragment class name
 java.lang.String getFragmentationRelation()
          Get the name of the fragmentation relation (this is a short name).
 PageClassSer[] getMappedPageClasses(java.sql.Connection con, java.lang.String maintenance_mode, boolean isUsedAsFoundationFragmentClass)
          Fetches page classes which are mapped to current fragment class; If isUsedAsFoundationFragmentClass is set to true only page classes are fetched which use the current fragment class as foundation fragment class.
 java.lang.String[] getParameterNames()
          get parameter names used by fragment class
 java.util.Hashtable getParameters()
          gets fragment class parameters
 java.util.Hashtable getParamMapping(java.sql.Connection con, PageClassSer pc, int paramAsKey)
          fetch mapping of fragment class - page class parameters as Hashtable; using page class parameter names as key and fragment class parameter names as value;
 java.lang.String getTupleRelation()
          get tablename of fragment class relation
 java.lang.String getXMLFragmentLocalName()
          gets fragment local name (xml element name for fragment)
 java.lang.String getXMLNsUri()
          gets fragment class namespace uri
 java.lang.String getXMLTupleLocalName()
          gets fragment tuple local name (xml element name for fragment tuples)
 void serializeFragment(java.sql.Connection con, org.xml.sax.ContentHandler hdl, PageClassSer pc, java.util.Hashtable pcParams)
          serializes fragment as XML element
 java.lang.String toString()
          String representation of FragmentClassSer using following syntax "fragment-class <" [fc_paramName {"," fc_paramName} ] ">"
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

PC_PARAM_AS_KEY

public static final int PC_PARAM_AS_KEY

FC_PARAM_AS_KEY

public static final int FC_PARAM_AS_KEY

_fcName

private java.lang.String _fcName
fragment class name

_fcParams

private java.util.Hashtable _fcParams
Fragment class parameters. A key holds the parameter name, a value its type. Types are coded according to java.sql.Types, which declares the following constants:

ARRAY BIGINT BINARY BIT BLOB CHAR CLOB DATE DECIMAL DISTINCT DOUBLE FLOAT INTEGER JAVA_OBJECT LONGVARBINARY LONGVARCHAR NULL NUMERIC OTHER REAL REF SMALLINT STRUCT TIME TIMESTAMP TINYINT VARBINARY VARCHAR


_fcParamNames

private java.lang.String[] _fcParamNames
names of parameters used by fragment class

_fragmentationTableName

private java.lang.String _fragmentationTableName
name of fragmentation relation

_tupleTableName

private java.lang.String _tupleTableName

_xmlNsUri

private java.lang.String _xmlNsUri
fragment namespace uri

_xmlFragmentLocalName

private java.lang.String _xmlFragmentLocalName
fragment name

_xmlTupleLocalName

private java.lang.String _xmlTupleLocalName
tuple name

TABLENAME_PARAM_MAPPING

private final java.lang.String TABLENAME_PARAM_MAPPING
table containing parameter mapping
Constructor Detail

FragmentClassSer

public FragmentClassSer(java.sql.Connection con,
                        java.lang.String fc_longName,
                        TColumnTable fr_tuple)
                 throws java.sql.SQLException
constructor
Parameters:
con - Connection handle
fc_longName - name of fragment class
fr_tuple - tuple of fragmentation relation, used to designate parameter names of fragment class;
Throws:
java.sql.SQLException - error fetching data

FragmentClassSer

public FragmentClassSer(java.sql.Connection con,
                        java.lang.String fcName)
                 throws java.sql.SQLException
constructor
Parameters:
con - Connection object
fcName - fragment class long name
Throws:
java.sql.SQLException - fetching data failed
Method Detail

getFcName

public java.lang.String getFcName()
gets fragment class name

getParameters

public java.util.Hashtable getParameters()
gets fragment class parameters
Returns:
fragment class parameters

getParameterNames

public java.lang.String[] getParameterNames()
get parameter names used by fragment class
Returns:
parameter names

getTupleRelation

public java.lang.String getTupleRelation()
get tablename of fragment class relation
Returns:
tablename

getFragmentationRelation

public java.lang.String getFragmentationRelation()
Get the name of the fragmentation relation (this is a short name).
Returns:
fragmentation tablename, null if fragment class is unparameterized

getXMLNsUri

public java.lang.String getXMLNsUri()
gets fragment class namespace uri

getXMLFragmentLocalName

public java.lang.String getXMLFragmentLocalName()
gets fragment local name (xml element name for fragment)

getXMLTupleLocalName

public java.lang.String getXMLTupleLocalName()
gets fragment tuple local name (xml element name for fragment tuples)

getParamMapping

public java.util.Hashtable getParamMapping(java.sql.Connection con,
                                           PageClassSer pc,
                                           int paramAsKey)
                                    throws java.sql.SQLException
fetch mapping of fragment class - page class parameters as Hashtable; using page class parameter names as key and fragment class parameter names as value;
Parameters:
con - Connection handle
pc - page class
paramAsKey - states if page class parameter are used as key or if fragment class parameter are used as key
Returns:
mapping of names of fc-parameters to pc-parameters. Key=fc-param-name, value=pc-param-name or vice versa.
Throws:
java.sql.SQLException -  

serializeFragment

public void serializeFragment(java.sql.Connection con,
                              org.xml.sax.ContentHandler hdl,
                              PageClassSer pc,
                              java.util.Hashtable pcParams)
                       throws org.xml.sax.SAXException,
                              java.sql.SQLException
serializes fragment as XML element
Parameters:
con - Connection handle
hdl - content handler
pc - page class
pcParams - Contains page class parameters as key/value pairs. A key corresponds to a page class parameter name, and the according value to the page class parameter's value respectively. If null the fragment class is unparameterized.
Throws:
org.xml.sax.SAXException - parsing/creating xml document failed
java.sql.SQLException - reading/writing data failed

getMappedPageClasses

public PageClassSer[] getMappedPageClasses(java.sql.Connection con,
                                           java.lang.String maintenance_mode,
                                           boolean isUsedAsFoundationFragmentClass)
                                    throws java.sql.SQLException
Fetches page classes which are mapped to current fragment class; If isUsedAsFoundationFragmentClass is set to true only page classes are fetched which use the current fragment class as foundation fragment class. If the parameter is set to false all mapped page classes are mapped.
Parameters:
con - Connection handle
isUsedAsFoundationFragmentClass - true fetches only page classes which use current fragment class as foundation fragment class;

false fetches all page classes the current fragment class is mapped to

maintenance_mode - {"coreSMWP", "onTheFly", "pullOfFragments", null}
Returns:
Page page classes the given fragment class is mapped to.
Throws:
java.sql.SQLException - fetching data failed

toString

public java.lang.String toString()
String representation of FragmentClassSer using following syntax "fragment-class <" [fc_paramName {"," fc_paramName} ] ">"
Overrides:
toString in class java.lang.Object
Returns:
String representation of FragmentClassSer

copyTo

public void copyTo(FragmentClassSer target)
copies itself to target object
Parameters:
target - empty object