org.apache.cocoon.transformation
Class SQLTransformer

java.lang.Object
  |
  +--org.apache.avalon.framework.logger.AbstractLoggable
        |
        +--org.apache.cocoon.xml.AbstractXMLProducer
              |
              +--org.apache.cocoon.xml.AbstractXMLPipe
                    |
                    +--org.apache.cocoon.transformation.AbstractTransformer
                          |
                          +--org.apache.cocoon.transformation.SQLTransformer
All Implemented Interfaces:
org.apache.avalon.framework.component.Component, org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.configuration.Configurable, org.xml.sax.ContentHandler, org.apache.avalon.framework.activity.Disposable, org.xml.sax.ext.LexicalHandler, org.apache.avalon.framework.logger.Loggable, org.apache.avalon.excalibur.pool.Poolable, org.apache.avalon.excalibur.pool.Recyclable, SitemapModelComponent, Transformer, XMLConsumer, XMLPipe, XMLProducer

public class SQLTransformer
extends AbstractTransformer
implements org.apache.avalon.framework.component.Composable, org.apache.avalon.excalibur.pool.Recyclable, org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.configuration.Configurable

Version:
CVS $Revision: 1.5.2.15 $ $Date: 2001/11/15 11:20:40 $ $Author: cziegeler $
Author:
Donald Ball, Giacomo Pati (PWR Organisation & Entwicklung), Sven Beauprez

Field Summary
protected  java.lang.String current_name
          The name of the value element we're currently receiving
protected  int current_query_index
          The offset of the current query in the queries list
protected  int current_state
          The current state of the event receiving FSM
protected  java.lang.StringBuffer current_value
          The value of the value element we're currently receiving
protected  org.apache.avalon.framework.component.ComponentSelector dbSelector
           
protected  java.util.Properties default_properties
          Default parameters that might apply to all queries
protected  java.lang.String inPrefix
          The prefix of our namespace to listen to
static java.lang.String MAGIC_ANCESTOR_VALUE
           
static java.lang.String MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE
           
static java.lang.String MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE
           
static java.lang.String MAGIC_CONNECTION
           
static java.lang.String MAGIC_DBURL
           
static java.lang.String MAGIC_DOC_ELEMENT
           
static java.lang.String MAGIC_EXECUTE_QUERY
          The SQL namespace element names
static java.lang.String MAGIC_IN_PARAMETER
           
static java.lang.String MAGIC_IN_PARAMETER_NR_ATTRIBUTE
           
static java.lang.String MAGIC_IN_PARAMETER_VALUE_ATTRIBUTE
           
static java.lang.String MAGIC_NAME_ATTRIBUTE
           
static java.lang.String MAGIC_NR_OF_ROWS
           
static java.lang.String MAGIC_NS_PREFIX_ELEMENT
           
static java.lang.String MAGIC_NS_URI_ELEMENT
           
static java.lang.String MAGIC_OUT_PARAMETER
           
static java.lang.String MAGIC_OUT_PARAMETER_NAME_ATTRIBUTE
           
static java.lang.String MAGIC_OUT_PARAMETER_NR_ATTRIBUTE
           
static java.lang.String MAGIC_OUT_PARAMETER_TYPE_ATTRIBUTE
           
static java.lang.String MAGIC_PASSWORD
           
static java.lang.String MAGIC_QUERY
           
static java.lang.String MAGIC_ROW_ELEMENT
           
static java.lang.String MAGIC_STORED_PROCEDURE_ATTRIBUTE
           
static java.lang.String MAGIC_SUBSTITUTE_VALUE
           
static java.lang.String MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE
           
static java.lang.String MAGIC_UPDATE_ATTRIBUTE
           
static java.lang.String MAGIC_USERNAME
           
static java.lang.String MAGIC_VALUE
           
protected  org.apache.avalon.framework.component.ComponentManager manager
           
static java.lang.String my_name
           
static java.lang.String my_uri
          The SQL namespace
protected  java.util.Map objectModel
           
protected  java.lang.String outPrefix
          Namespace prefix to output
protected  java.lang.String outUri
          Namespace uri to output
protected  org.apache.avalon.framework.parameters.Parameters parameters
           
protected  java.util.Vector queries
          The list of queries that we're currently working on
protected  java.lang.String showNrOfRows
          Check if nr of rows need to be written out.
static int STATE_INSIDE_ANCESTOR_VALUE_ELEMENT
           
static int STATE_INSIDE_EXECUTE_QUERY_ELEMENT
           
static int STATE_INSIDE_IN_PARAMETER_ELEMENT
           
static int STATE_INSIDE_OUT_PARAMETER_ELEMENT
           
static int STATE_INSIDE_QUERY_ELEMENT
           
static int STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT
           
static int STATE_INSIDE_VALUE_ELEMENT
           
static int STATE_OUTSIDE
          The states we are allowed to be in
 
Fields inherited from class org.apache.cocoon.xml.AbstractXMLProducer
contentHandler, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.cocoon.transformation.Transformer
ROLE
 
Constructor Summary
SQLTransformer()
           
 
Method Summary
 void characters(char[] ary, int start, int length)
          Receive notification of character data.
 void compose(org.apache.avalon.framework.component.ComponentManager manager)
           
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
          configure
 void dispose()
          dispose
protected  void endAncestorValueElement()
           
 void endElement(java.lang.String uri, java.lang.String name, java.lang.String raw)
          Receive notification of the end of an element.
protected  void endExecuteQueryElement()
           
protected  void endInParameterElement()
           
protected  void endOutParameterElement()
           
 void endPrefixMapping(java.lang.String prefix)
          End the scope of a prefix-URI mapping.
protected  void endQueryElement()
           
protected  void endSubstituteValueElement()
           
protected  void endValueElement()
           
protected  void executeQuery(int index)
          This will be the meat of SQLTransformer, where the query is run.
protected  org.apache.cocoon.transformation.SQLTransformer.Query getCurrentQuery()
           
protected  org.apache.cocoon.transformation.SQLTransformer.Query getQuery(int i)
           
protected static java.lang.String getStringValue(java.lang.Object object)
           
 org.apache.log.Logger getTheLogger()
           
protected  java.lang.String nsQualify(java.lang.String name, java.lang.String prefix)
          Qualifies an element name by giving it a prefix.
 void recycle()
          Recycle this component
 void setDocumentLocator(org.xml.sax.Locator locator)
          Receive an object for locating the origin of SAX document events.
 void setup(SourceResolver resolver, java.util.Map objectModel, java.lang.String source, org.apache.avalon.framework.parameters.Parameters parameters)
          BEGIN SitemapComponent methods
protected  void startAncestorValueElement(org.xml.sax.Attributes attributes)
           
 void startElement(java.lang.String uri, java.lang.String name, java.lang.String raw, org.xml.sax.Attributes attributes)
          Receive notification of the beginning of an element.
protected  void startExecuteQueryElement()
           
protected  void startInParameterElement(org.xml.sax.Attributes attributes)
           
protected  void startOutParameterElement(org.xml.sax.Attributes attributes)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
          BEGIN SAX ContentHandler handlers
protected  void startQueryElement(org.xml.sax.Attributes attributes)
           
protected  void startSubstituteValueElement(org.xml.sax.Attributes attributes)
           
protected  void startValueElement(java.lang.String name)
           
protected static void throwIllegalStateException(java.lang.String message)
           
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLPipe
comment, endCDATA, endDocument, endDTD, endEntity, ignorableWhitespace, processingInstruction, skippedEntity, startCDATA, startDocument, startDTD, startEntity
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer
setConsumer, setContentHandler, setLexicalHandler
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable
getLogger, setLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
endDocument, ignorableWhitespace, processingInstruction, skippedEntity, startDocument
 
Methods inherited from interface org.xml.sax.ext.LexicalHandler
comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity
 
Methods inherited from interface org.apache.cocoon.xml.XMLProducer
setConsumer
 

Field Detail

my_uri

public static final java.lang.String my_uri
The SQL namespace

my_name

public static final java.lang.String my_name

MAGIC_EXECUTE_QUERY

public static final java.lang.String MAGIC_EXECUTE_QUERY
The SQL namespace element names

MAGIC_CONNECTION

public static final java.lang.String MAGIC_CONNECTION

MAGIC_DBURL

public static final java.lang.String MAGIC_DBURL

MAGIC_USERNAME

public static final java.lang.String MAGIC_USERNAME

MAGIC_PASSWORD

public static final java.lang.String MAGIC_PASSWORD

MAGIC_NR_OF_ROWS

public static final java.lang.String MAGIC_NR_OF_ROWS

MAGIC_QUERY

public static final java.lang.String MAGIC_QUERY

MAGIC_VALUE

public static final java.lang.String MAGIC_VALUE

MAGIC_DOC_ELEMENT

public static final java.lang.String MAGIC_DOC_ELEMENT

MAGIC_ROW_ELEMENT

public static final java.lang.String MAGIC_ROW_ELEMENT

MAGIC_IN_PARAMETER

public static final java.lang.String MAGIC_IN_PARAMETER

MAGIC_IN_PARAMETER_NR_ATTRIBUTE

public static final java.lang.String MAGIC_IN_PARAMETER_NR_ATTRIBUTE

MAGIC_IN_PARAMETER_VALUE_ATTRIBUTE

public static final java.lang.String MAGIC_IN_PARAMETER_VALUE_ATTRIBUTE

MAGIC_OUT_PARAMETER

public static final java.lang.String MAGIC_OUT_PARAMETER

MAGIC_OUT_PARAMETER_NAME_ATTRIBUTE

public static final java.lang.String MAGIC_OUT_PARAMETER_NAME_ATTRIBUTE

MAGIC_OUT_PARAMETER_NR_ATTRIBUTE

public static final java.lang.String MAGIC_OUT_PARAMETER_NR_ATTRIBUTE

MAGIC_OUT_PARAMETER_TYPE_ATTRIBUTE

public static final java.lang.String MAGIC_OUT_PARAMETER_TYPE_ATTRIBUTE

MAGIC_NS_URI_ELEMENT

public static final java.lang.String MAGIC_NS_URI_ELEMENT

MAGIC_NS_PREFIX_ELEMENT

public static final java.lang.String MAGIC_NS_PREFIX_ELEMENT

MAGIC_ANCESTOR_VALUE

public static final java.lang.String MAGIC_ANCESTOR_VALUE

MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE

public static final java.lang.String MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE

MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE

public static final java.lang.String MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE

MAGIC_SUBSTITUTE_VALUE

public static final java.lang.String MAGIC_SUBSTITUTE_VALUE

MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE

public static final java.lang.String MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE

MAGIC_NAME_ATTRIBUTE

public static final java.lang.String MAGIC_NAME_ATTRIBUTE

MAGIC_STORED_PROCEDURE_ATTRIBUTE

public static final java.lang.String MAGIC_STORED_PROCEDURE_ATTRIBUTE

MAGIC_UPDATE_ATTRIBUTE

public static final java.lang.String MAGIC_UPDATE_ATTRIBUTE

STATE_OUTSIDE

public static final int STATE_OUTSIDE
The states we are allowed to be in

STATE_INSIDE_EXECUTE_QUERY_ELEMENT

public static final int STATE_INSIDE_EXECUTE_QUERY_ELEMENT

STATE_INSIDE_VALUE_ELEMENT

public static final int STATE_INSIDE_VALUE_ELEMENT

STATE_INSIDE_QUERY_ELEMENT

public static final int STATE_INSIDE_QUERY_ELEMENT

STATE_INSIDE_ANCESTOR_VALUE_ELEMENT

public static final int STATE_INSIDE_ANCESTOR_VALUE_ELEMENT

STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT

public static final int STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT

STATE_INSIDE_IN_PARAMETER_ELEMENT

public static final int STATE_INSIDE_IN_PARAMETER_ELEMENT

STATE_INSIDE_OUT_PARAMETER_ELEMENT

public static final int STATE_INSIDE_OUT_PARAMETER_ELEMENT

default_properties

protected java.util.Properties default_properties
Default parameters that might apply to all queries

queries

protected java.util.Vector queries
The list of queries that we're currently working on

current_query_index

protected int current_query_index
The offset of the current query in the queries list

current_name

protected java.lang.String current_name
The name of the value element we're currently receiving

current_state

protected int current_state
The current state of the event receiving FSM

current_value

protected java.lang.StringBuffer current_value
The value of the value element we're currently receiving

showNrOfRows

protected java.lang.String showNrOfRows
Check if nr of rows need to be written out.

outPrefix

protected java.lang.String outPrefix
Namespace prefix to output

outUri

protected java.lang.String outUri
Namespace uri to output

inPrefix

protected java.lang.String inPrefix
The prefix of our namespace to listen to

dbSelector

protected org.apache.avalon.framework.component.ComponentSelector dbSelector

manager

protected org.apache.avalon.framework.component.ComponentManager manager

parameters

protected org.apache.avalon.framework.parameters.Parameters parameters

objectModel

protected java.util.Map objectModel
Constructor Detail

SQLTransformer

public SQLTransformer()
Method Detail

compose

public void compose(org.apache.avalon.framework.component.ComponentManager manager)
Specified by:
compose in interface org.apache.avalon.framework.component.Composable

recycle

public void recycle()
Recycle this component
Specified by:
recycle in interface org.apache.avalon.excalibur.pool.Recyclable
Overrides:
recycle in class AbstractXMLProducer

dispose

public void dispose()
dispose
Specified by:
dispose in interface org.apache.avalon.framework.activity.Disposable

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
               throws org.apache.avalon.framework.configuration.ConfigurationException
configure
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable

setup

public void setup(SourceResolver resolver,
                  java.util.Map objectModel,
                  java.lang.String source,
                  org.apache.avalon.framework.parameters.Parameters parameters)
           throws ProcessingException,
                  org.xml.sax.SAXException,
                  java.io.IOException
BEGIN SitemapComponent methods

executeQuery

protected void executeQuery(int index)
                     throws org.xml.sax.SAXException
This will be the meat of SQLTransformer, where the query is run.

throwIllegalStateException

protected static void throwIllegalStateException(java.lang.String message)

startExecuteQueryElement

protected void startExecuteQueryElement()

startValueElement

protected void startValueElement(java.lang.String name)

startQueryElement

protected void startQueryElement(org.xml.sax.Attributes attributes)

endQueryElement

protected void endQueryElement()

endValueElement

protected void endValueElement()

endExecuteQueryElement

protected void endExecuteQueryElement()
                               throws org.xml.sax.SAXException

startAncestorValueElement

protected void startAncestorValueElement(org.xml.sax.Attributes attributes)

endAncestorValueElement

protected void endAncestorValueElement()

startSubstituteValueElement

protected void startSubstituteValueElement(org.xml.sax.Attributes attributes)

endSubstituteValueElement

protected void endSubstituteValueElement()

startInParameterElement

protected void startInParameterElement(org.xml.sax.Attributes attributes)

endInParameterElement

protected void endInParameterElement()

startOutParameterElement

protected void startOutParameterElement(org.xml.sax.Attributes attributes)

endOutParameterElement

protected void endOutParameterElement()

getCurrentQuery

protected org.apache.cocoon.transformation.SQLTransformer.Query getCurrentQuery()

getQuery

protected org.apache.cocoon.transformation.SQLTransformer.Query getQuery(int i)

nsQualify

protected java.lang.String nsQualify(java.lang.String name,
                                     java.lang.String prefix)
Qualifies an element name by giving it a prefix.
Parameters:
name - the element name
prefix - the prefix to qualify with
Returns:
a namespace qualified name that is correct

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws org.xml.sax.SAXException
BEGIN SAX ContentHandler handlers
Overrides:
startPrefixMapping in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
Description copied from class: AbstractXMLPipe
End the scope of a prefix-URI mapping.
Overrides:
endPrefixMapping in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
prefix - The prefix that was being mapping.

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Description copied from class: AbstractXMLPipe
Receive an object for locating the origin of SAX document events.
Overrides:
setDocumentLocator in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
locator - An object that can return the location of any SAX document event.

startElement

public void startElement(java.lang.String uri,
                         java.lang.String name,
                         java.lang.String raw,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Description copied from class: AbstractXMLPipe
Receive notification of the beginning of an element.
Overrides:
startElement in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.
a - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.

endElement

public void endElement(java.lang.String uri,
                       java.lang.String name,
                       java.lang.String raw)
                throws org.xml.sax.SAXException
Description copied from class: AbstractXMLPipe
Receive notification of the end of an element.
Overrides:
endElement in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.

characters

public void characters(char[] ary,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Description copied from class: AbstractXMLPipe
Receive notification of character data.
Overrides:
characters in class AbstractXMLPipe
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
c - The characters from the XML document.
start - The start position in the array.
len - The number of characters to read from the array.

getStringValue

protected static java.lang.String getStringValue(java.lang.Object object)

getTheLogger

public final org.apache.log.Logger getTheLogger()


Copyright © 1999-2001 Apache Software Foundation. All Rights Reserved.