org.infoglue.cms.util.workflow
Class InfoGlueJDBCPropertySet

java.lang.Object
  |
  +--com.opensymphony.module.propertyset.AbstractPropertySet
        |
        +--com.opensymphony.module.propertyset.database.JDBCPropertySet
              |
              +--org.infoglue.cms.util.workflow.InfoGlueJDBCPropertySet
All Implemented Interfaces:
com.opensymphony.module.propertyset.PropertySet

public class InfoGlueJDBCPropertySet
extends com.opensymphony.module.propertyset.database.JDBCPropertySet

This is an implementation of a property set manager for JDBC. It relies on one table, called "os_propertyset" that has four columns: "type" (integer), "keyValue" (string), "globalKey" (string), and "value" (string). This is not likely to be enough for people who store BLOBS as properties. Of course, those people need to get a life.

For Postgres(?):
CREATE TABLE OS_PROPERTYENTRY (GLOBAL_KEY varchar(255), ITEM_KEY varchar(255), ITEM_TYPE smallint, STRING_VALUE varchar(255), DATE_VALUE timestamp, DATA_VALUE oid, FLOAT_VALUE float8, NUMBER_VALUE numeric, primary key (GLOBAL_KEY, ITEM_KEY));

For Oracle (Thanks to Michael G. Slack!):
CREATE TABLE OS_PROPERTYENTRY (GLOBAL_KEY varchar(255), ITEM_KEY varchar(255), ITEM_TYPE smallint, STRING_VALUE varchar(255), DATE_VALUE date, DATA_VALUE long raw, FLOAT_VALUE float, NUMBER_VALUE numeric, primary key (GLOBAL_KEY, ITEM_KEY));

Other databases may require small tweaks to the table creation scripts!

Required Args

Required Configuration

Version:
$Revision: 1.2 $
Author:
Joseph B. Ottinger, Pat Lightbody

Field Summary
 
Fields inherited from interface com.opensymphony.module.propertyset.PropertySet
BOOLEAN, DATA, DATE, DOUBLE, INT, LONG, OBJECT, PROPERTIES, STRING, TEXT, XML
 
Constructor Summary
InfoGlueJDBCPropertySet()
           
 
Method Summary
 boolean exists(java.lang.String key)
           
 java.util.Collection getKeys(java.lang.String prefix, int type)
           
 int getType(java.lang.String key)
           
 void init(java.util.Map config, java.util.Map args)
           
 void remove(java.lang.String key)
           
 
Methods inherited from class com.opensymphony.module.propertyset.database.JDBCPropertySet
remove, supportsType
 
Methods inherited from class com.opensymphony.module.propertyset.AbstractPropertySet
getAsActualType, getBoolean, getData, getDate, getDouble, getInt, getKeys, getKeys, getKeys, getLong, getObject, getProperties, getSchema, getString, getText, getXML, isSettable, setAsActualType, setBoolean, setData, setDate, setDouble, setInt, setLong, setObject, setProperties, setSchema, setString, setText, setXML, supportsTypes, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InfoGlueJDBCPropertySet

public InfoGlueJDBCPropertySet()
Method Detail

getKeys

public java.util.Collection getKeys(java.lang.String prefix,
                                    int type)
                             throws com.opensymphony.module.propertyset.PropertyException
Specified by:
getKeys in interface com.opensymphony.module.propertyset.PropertySet
Overrides:
getKeys in class com.opensymphony.module.propertyset.database.JDBCPropertySet
com.opensymphony.module.propertyset.PropertyException

getType

public int getType(java.lang.String key)
            throws com.opensymphony.module.propertyset.PropertyException
Specified by:
getType in interface com.opensymphony.module.propertyset.PropertySet
Overrides:
getType in class com.opensymphony.module.propertyset.database.JDBCPropertySet
com.opensymphony.module.propertyset.PropertyException

exists

public boolean exists(java.lang.String key)
               throws com.opensymphony.module.propertyset.PropertyException
Specified by:
exists in interface com.opensymphony.module.propertyset.PropertySet
Overrides:
exists in class com.opensymphony.module.propertyset.database.JDBCPropertySet
com.opensymphony.module.propertyset.PropertyException

init

public void init(java.util.Map config,
                 java.util.Map args)
Specified by:
init in interface com.opensymphony.module.propertyset.PropertySet
Overrides:
init in class com.opensymphony.module.propertyset.database.JDBCPropertySet

remove

public void remove(java.lang.String key)
            throws com.opensymphony.module.propertyset.PropertyException
Specified by:
remove in interface com.opensymphony.module.propertyset.PropertySet
Overrides:
remove in class com.opensymphony.module.propertyset.database.JDBCPropertySet
com.opensymphony.module.propertyset.PropertyException