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.framework.activity.Disposable, org.apache.avalon.framework.configuration.Configurable

Version:
CVS $Id: SQLTransformer.java,v 1.8 2002/02/22 07:03:56 cziegeler Exp $
Author:
Carsten Ziegeler, 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
          The database selector
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_ERROR
           
static java.lang.String MAGIC_ESCAPE_STRING
           
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
          The component manager
static java.lang.String NAMESPACE
          The SQL namespace
protected  java.util.Map objectModel
          The current object model
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
          The parameters of the current request
protected  java.util.Vector queries
          The list of queries that we're currently working on
protected  boolean showNrOfRows
          Check if nr of rows need to be written out.
protected static int STATE_INSIDE_ANCESTOR_VALUE_ELEMENT
           
protected static int STATE_INSIDE_ESCAPE_STRING
           
protected static int STATE_INSIDE_EXECUTE_QUERY_ELEMENT
           
protected static int STATE_INSIDE_IN_PARAMETER_ELEMENT
           
protected static int STATE_INSIDE_OUT_PARAMETER_ELEMENT
           
protected static int STATE_INSIDE_QUERY_ELEMENT
           
protected static int STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT
           
protected static int STATE_INSIDE_VALUE_ELEMENT
           
protected 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)
          ContentHandler method
 void compose(org.apache.avalon.framework.component.ComponentManager manager)
          Composable
 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)
          ContentHandler method
protected  void endEscapeStringElement()
           
protected  void endExecuteQueryElement()
           
protected  void endInParameterElement()
           
protected  void endOutParameterElement()
           
 void endPrefixMapping(java.lang.String prefix)
          ContentHandler method
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)
          ContentHandler method
 void setup(SourceResolver resolver, java.util.Map objectModel, java.lang.String source, org.apache.avalon.framework.parameters.Parameters parameters)
          Setup for the current request
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)
          ContentHandler method
protected  void startEscapeStringElement(org.xml.sax.Attributes attributes)
           
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)
          ContentHandler method
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

NAMESPACE

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

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_ESCAPE_STRING

public static final java.lang.String MAGIC_ESCAPE_STRING

MAGIC_ERROR

public static final java.lang.String MAGIC_ERROR

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

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

STATE_INSIDE_EXECUTE_QUERY_ELEMENT

protected static final int STATE_INSIDE_EXECUTE_QUERY_ELEMENT

STATE_INSIDE_VALUE_ELEMENT

protected static final int STATE_INSIDE_VALUE_ELEMENT

STATE_INSIDE_QUERY_ELEMENT

protected static final int STATE_INSIDE_QUERY_ELEMENT

STATE_INSIDE_ANCESTOR_VALUE_ELEMENT

protected static final int STATE_INSIDE_ANCESTOR_VALUE_ELEMENT

STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT

protected static final int STATE_INSIDE_SUBSTITUTE_VALUE_ELEMENT

STATE_INSIDE_IN_PARAMETER_ELEMENT

protected static final int STATE_INSIDE_IN_PARAMETER_ELEMENT

STATE_INSIDE_OUT_PARAMETER_ELEMENT

protected static final int STATE_INSIDE_OUT_PARAMETER_ELEMENT

STATE_INSIDE_ESCAPE_STRING

protected static final int STATE_INSIDE_ESCAPE_STRING

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 boolean 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
The database selector

manager

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

parameters

protected org.apache.avalon.framework.parameters.Parameters parameters
The parameters of the current request

objectModel

protected java.util.Map objectModel
The current object model
Constructor Detail

SQLTransformer

public SQLTransformer()
Method Detail

compose

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

recycle

public void recycle()
Recycle this component
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
Setup for the current request

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()

startEscapeStringElement

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

endEscapeStringElement

protected void endEscapeStringElement()

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
ContentHandler method
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
ContentHandler method
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)
ContentHandler method
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
ContentHandler method
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
ContentHandler method
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
ContentHandler method
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-2002 Apache Software Foundation. All Rights Reserved.