com.dhtmlx.connector
Class BaseConnector

java.lang.Object
  extended by com.dhtmlx.connector.BaseConnector
Direct Known Subclasses:
ComboConnector, DummyStringConnector, GridConnector, OptionsConnector, SchedulerConnector, TreeConnector

public class BaseConnector
extends java.lang.Object

The Class BaseConnector. Class represents universal connector. It has not any component specific functionality, but can handler and parse common elements of incoming request.


Field Summary
 AccessManager access
          Access Manager instance
protected  BaseFactory cfactory
          The factory of related classes
protected  DataConfig config
          The data configuration
private  java.sql.Connection db
          DB connection
protected  DBType db_type
          Used DB type
protected  boolean dynloading
          Flag of dynamic loading mode
protected  int dynloading_size
          Size of dynamic loading
private  boolean editing
          Flag of update mode
private  java.lang.String encoding
          Used encoding
 ConnectorBehavior event
          Event extension
private  long exec_time
          Execution timer.
protected static javax.servlet.http.HttpServletRequest global_http_request
          common http request object
protected static javax.servlet.http.HttpServletResponse global_http_response
          common http response object
protected  javax.servlet.http.HttpServletRequest http_request
          active http request object
protected  javax.servlet.http.HttpServletResponse http_response
          active http response object
private  int id_seed
          Seed for auto id generation
 java.util.HashMap<java.lang.String,java.lang.String> incoming_data
          The incoming_data.
protected  DataRequest request
          The parsed incoming request.
 DataWrapper sql
          Data Wrapper instance
 
Constructor Summary
BaseConnector(java.sql.Connection db)
          Instantiates a new base connector.
BaseConnector(java.sql.Connection db, DBType db_type)
          Instantiates a new base connector.
BaseConnector(java.sql.Connection db, DBType db_type, BaseFactory a_factory)
          Instantiates a new base connector.
 
Method Summary
 void dynamic_loading(boolean state)
          Enable dynamic loading Dynamic loading size set to 30 by default
 void dynamic_loading(int size)
          Set size of dynamic loading
 void enable_log(java.lang.String path, boolean output_to_client)
          enable logging
protected  void end_run()
          Finish connector execution The method not stops execution, it just called at the end of processing to measure execution time
protected  java.sql.Connection get_connection()
          Gets the connection
private  void init_self(java.sql.Connection db, DataWrapper dw, BaseFactory a_factory)
          Initialize self , after creation
 boolean is_select_mode()
          Checks if current mode is a select mode.
protected  java.lang.String output_as_xml(ConnectorResultSet result)
          Convert DB result set to string and add xml elements defined by other configuration options
protected  void output_as_xml(java.lang.String data)
          Output xml string with correct headers
protected  void parse_request()
          Parse http request Methods sets "dynloading", "editing" flags and fill request object with info about requested sorting|filtering options.
 java.lang.String render_connector(DataConfig config, DataRequest request)
          Build xml response, based on specified config and data
protected  java.lang.String render_set(ConnectorResultSet result)
          Render DB result set as XML string
 void render_sql(java.lang.String sql, java.lang.String id, java.lang.String fields)
          Render_sql.
 void render_sql(java.lang.String sql, java.lang.String id, java.lang.String fields, java.lang.String extra)
          Render_sql.
 void render_sql(java.lang.String sql, java.lang.String id, java.lang.String fields, java.lang.String extra, java.lang.String relation_id)
          Build xml response for specified sql query in DB
 void render_table(java.lang.String table, java.lang.String id, java.lang.String fields)
          Build xml response for specified table in DB
 void render_table(java.lang.String table, java.lang.String id, java.lang.String fields, java.lang.String extra)
          Build xml response for specified table in DB
 void render_table(java.lang.String table, java.lang.String id, java.lang.String fields, java.lang.String extra, java.lang.String relation_id)
          Build xml response for specified table in DB
 java.lang.String render()
          Build xml response, based on previously provided configuration All top level render methods, call this one, after parsing provided configuration
private  DataWrapper resolve_data_wrapper(DBType db_type, BaseFactory a_factory)
          Creates a DataWrapper object, based on provided settings
protected  java.lang.String resolve_parameter(java.lang.String name)
          Resolve incoming http parameter Translate name of incoming parameter to the name of related DB field
protected  java.lang.String safe_field_name(java.lang.String str)
          Ensure, that used field name can't be used for sql injection
 void servlet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Link connector to active request and response
 void set_encoding(java.lang.String name)
          Sets used xml encoding.
protected  java.lang.String uuid()
          Get unique ID
protected  java.lang.String xml_end()
          Get closing top level xml tag
protected  java.lang.String xml_start()
          Get opening top level xml tag
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

global_http_request

protected static javax.servlet.http.HttpServletRequest global_http_request
common http request object


global_http_response

protected static javax.servlet.http.HttpServletResponse global_http_response
common http response object


http_request

protected javax.servlet.http.HttpServletRequest http_request
active http request object


http_response

protected javax.servlet.http.HttpServletResponse http_response
active http response object


incoming_data

public java.util.HashMap<java.lang.String,java.lang.String> incoming_data
The incoming_data.


config

protected DataConfig config
The data configuration


request

protected DataRequest request
The parsed incoming request.


cfactory

protected BaseFactory cfactory
The factory of related classes


dynloading

protected boolean dynloading
Flag of dynamic loading mode


dynloading_size

protected int dynloading_size
Size of dynamic loading


encoding

private java.lang.String encoding
Used encoding


editing

private boolean editing
Flag of update mode


db

private java.sql.Connection db
DB connection


id_seed

private int id_seed
Seed for auto id generation


db_type

protected DBType db_type
Used DB type


exec_time

private long exec_time
Execution timer.


access

public AccessManager access
Access Manager instance


sql

public DataWrapper sql
Data Wrapper instance


event

public ConnectorBehavior event
Event extension

Constructor Detail

BaseConnector

public BaseConnector(java.sql.Connection db)
Instantiates a new base connector.

Parameters:
db - DB connecton

BaseConnector

public BaseConnector(java.sql.Connection db,
                     DBType db_type)
Instantiates a new base connector.

Parameters:
db - DB connection
db_type - type of used DB

BaseConnector

public BaseConnector(java.sql.Connection db,
                     DBType db_type,
                     BaseFactory a_factory)
Instantiates a new base connector.

Parameters:
db - DB connection
db_type - type of used DB
a_factory - class factory
Method Detail

resolve_data_wrapper

private DataWrapper resolve_data_wrapper(DBType db_type,
                                         BaseFactory a_factory)
Creates a DataWrapper object, based on provided settings

Parameters:
db_type - type of used DB
a_factory - class factory, used by connector
Returns:
the data wrapper

init_self

private void init_self(java.sql.Connection db,
                       DataWrapper dw,
                       BaseFactory a_factory)
Initialize self , after creation

Parameters:
db - DB connection
dw - type of used DB
a_factory - class factory

get_connection

protected java.sql.Connection get_connection()
Gets the connection

Returns:
the connection

render_table

public void render_table(java.lang.String table,
                         java.lang.String id,
                         java.lang.String fields)
Build xml response for specified table in DB

Parameters:
table - the name of table
id - the name of id field
fields - the name of data fields

render_table

public void render_table(java.lang.String table,
                         java.lang.String id,
                         java.lang.String fields,
                         java.lang.String extra)
Build xml response for specified table in DB

Parameters:
table - the name of table
id - the name of id field
fields - the name of data fields
extra - the name of extra fields

render_table

public void render_table(java.lang.String table,
                         java.lang.String id,
                         java.lang.String fields,
                         java.lang.String extra,
                         java.lang.String relation_id)
Build xml response for specified table in DB

Parameters:
table - the name of table
id - the name of id field
fields - the name of data fields
extra - the name of extra fields
relation_id - the name of relation field

uuid

protected java.lang.String uuid()
Get unique ID

Returns:
the unique id

render_sql

public void render_sql(java.lang.String sql,
                       java.lang.String id,
                       java.lang.String fields)
Render_sql.

Parameters:
sql - the sql query
id - the name of id field
fields - the name of data fields

render_sql

public void render_sql(java.lang.String sql,
                       java.lang.String id,
                       java.lang.String fields,
                       java.lang.String extra)
Render_sql.

Parameters:
sql - the sql query
id - the name of id field
fields - the name of data fields
extra - the name of extra fields

render_sql

public void render_sql(java.lang.String sql,
                       java.lang.String id,
                       java.lang.String fields,
                       java.lang.String extra,
                       java.lang.String relation_id)
Build xml response for specified sql query in DB

Parameters:
sql - the sql query
id - the name of id field
fields - the name of data fields
extra - the name of extra fields
relation_id - the name of relation field

render_connector

public java.lang.String render_connector(DataConfig config,
                                         DataRequest request)
Build xml response, based on specified config and data

Parameters:
config - the data config
request - the data request
Returns:
the xml string

render

public java.lang.String render()
Build xml response, based on previously provided configuration All top level render methods, call this one, after parsing provided configuration

Returns:
the xml string

safe_field_name

protected java.lang.String safe_field_name(java.lang.String str)
Ensure, that used field name can't be used for sql injection

Parameters:
str - the field name to be checked
Returns:
field name with all malicious chars removed

servlet

public void servlet(javax.servlet.http.HttpServletRequest request,
                    javax.servlet.http.HttpServletResponse response)
Link connector to active request and response

Parameters:
request - the http request
response - the http response

parse_request

protected void parse_request()
Parse http request Methods sets "dynloading", "editing" flags and fill request object with info about requested sorting|filtering options.


resolve_parameter

protected java.lang.String resolve_parameter(java.lang.String name)
Resolve incoming http parameter Translate name of incoming parameter to the name of related DB field

Parameters:
name - the name of http parameter
Returns:
the DB field name

render_set

protected java.lang.String render_set(ConnectorResultSet result)
                               throws ConnectorOperationException
Render DB result set as XML string

Parameters:
result - the DB result
Returns:
the xml string
Throws:
ConnectorOperationException - the connector operation exception

output_as_xml

protected void output_as_xml(java.lang.String data)
Output xml string with correct headers

Parameters:
data - the xml string

output_as_xml

protected java.lang.String output_as_xml(ConnectorResultSet result)
                                  throws ConnectorOperationException
Convert DB result set to string and add xml elements defined by other configuration options

Parameters:
result - the DB result
Returns:
the xml string
Throws:
ConnectorOperationException - the connector operation exception

end_run

protected void end_run()
Finish connector execution The method not stops execution, it just called at the end of processing to measure execution time


set_encoding

public void set_encoding(java.lang.String name)
Sets used xml encoding.

Parameters:
name - the encoding name

dynamic_loading

public void dynamic_loading(int size)
Set size of dynamic loading

Parameters:
size - the size

dynamic_loading

public void dynamic_loading(boolean state)
Enable dynamic loading Dynamic loading size set to 30 by default

Parameters:
state - the mode, true will enable dyn. loading, false will disable it

enable_log

public void enable_log(java.lang.String path,
                       boolean output_to_client)
enable logging

Parameters:
path - the path to the log file
output_to_client - if mode is set, error data will be sent to client side , which provides a simpler debugging, but not safe for production environment

is_select_mode

public boolean is_select_mode()
Checks if current mode is a select mode.

Returns:
true, if current mode is a select mode

xml_start

protected java.lang.String xml_start()
Get opening top level xml tag

Returns:
the xml string

xml_end

protected java.lang.String xml_end()
Get closing top level xml tag

Returns:
the xml string