com.sage.orion.sdata.servlet.swtservice
Class ShortCutsResourceKind

java.lang.Object
  extended by com.sage.orion.sdata.servlet.JDBCResourceKind
      extended by com.sage.orion.sdata.servlet.swtservice.ShortCutsResourceKind
All Implemented Interfaces:
ResourceKind

public class ShortCutsResourceKind
extends JDBCResourceKind

This class handles the Shortcuts Resource Kind


Nested Class Summary
 
Nested classes/interfaces inherited from class com.sage.orion.sdata.servlet.JDBCResourceKind
JDBCResourceKind.HTTPMethodsAuthorizator, JDBCResourceKind.ResourceAuthorizator, JDBCResourceKind.ResourceDataAuthorizator
 
Field Summary
 
Fields inherited from class com.sage.orion.sdata.servlet.JDBCResourceKind
ADD, ALTER_TABLE, AND, CLOSE_BRACE, COMMA, CONSTRAINT, DEFAULT, DEFAULT_LANGUAGE_CODE, DELETE_FROM, DROP, DROP_TABLE, FROM, NOT_NULL, OPEN_BRACE, PRIMARY_KEY, SELECT, UICONTENT_SQL_SELECT_STMT, VARCHAR_50, WHERE
 
Constructor Summary
ShortCutsResourceKind(java.lang.String companyID, ApplicationContext applicationContext, ConnectionPool connectionPool, java.lang.String authToken)
          Constructor
 
Method Summary
protected  void buildCustomizedQueryFields()
          Builds the customized list of fields from multiple RosourceKinds for the CUSTOMIZED_QUERY.
protected  void doCreateTable(java.lang.String companyID, ApplicationContext context, java.sql.Connection connection)
          Creates the shortcuts database table if it doesn't exist yet.
protected  ResourceResponse doGet(SDataRequest request, java.sql.Connection connection)
          This method takes appropriate action and generates ResourceResponse based on the specified request
protected  SDataResourceElement fillResultSetResourceElement(java.util.List<java.lang.String> selectCriteria, java.sql.ResultSet resultSet, SDataRequest request)
          Fills a newly created element with the tuple values got from the result set, adds the corresponding values from the portlet resource kind.
protected  java.util.List<FieldDefinition> getAllFields()
          returns a list of FieldDefinitions in the ResourceKind
protected  java.lang.String getCalculateFieldValue(java.lang.String value, SDataRequest request, java.sql.ResultSet resultSet, int fieldIndex)
          Get the value of the calculated field, if it is a regular (non-calculated) field then the original value will be returned unchanged
protected  java.lang.String getCustomizedQuery()
          Get the customized SQL query if need to used instead of default query build by JDBCResourceKind
 java.lang.String getName()
           
protected  java.lang.String[] getPrimaryKey()
          Get the primary key of the underlying JDBC table for which one JDBCResourceKindImpl is created
protected  ResourceResponse getResultRecordAndCreateResponse(java.sql.PreparedStatement prepareResultRecordGet, int httpResponseCode, SDataRequest request)
           Gets a result set with the lone record as specified by the prepared statement, then creates an SData response for that lone record.
protected static java.util.List<FieldDefinition> getTableFields()
          Returns a list of the fields from the resource kind table
 java.lang.String getTableName()
          Get the JDBC table name for which ResourceKindImpl is created
 boolean isUserSpecificResource()
          Indicates whether the resource is user specific or not.
protected  boolean supportDelete()
          Indicates whether the ResourceKind in general supports DELETE or not.
protected  boolean supportGet()
          Indicates whether the ResourceKind in general supports GET or not.
protected  boolean supportPost()
          Indicates whether the ResourceKind in general supports POST or not.
protected  boolean supportPut()
          Indicates whether the ResourceKind in general supports PUT or not.
 
Methods inherited from class com.sage.orion.sdata.servlet.JDBCResourceKind
addCompanyIDField, addRecordsForAllCompanies, buildUserFilter, canDelete, canDeleteOnData, canGet, canGetOnData, canPost, canPostOnData, canPut, canPutOnData, createPreparedEntryGetStatement, doDelete, doPost, doPut, doSchema, doTemplate, findUIContentTextValueInDB, focusOnResultSet, freeConnection, getApplicationContext, getAuthToken, getCaseInsensitiveColumns, getColumnNamesFromList, getCompanyIDField, getCompanyIDForFilter, getConnection, getCurrentRequest, getCurrentUser, getDatabaseType, getDefaultFeedCount, getFieldData, getFieldSchemaIdentity, getFieldSchemaName, getFieldSchemaType, getIncludeColumns, getInstance, getKeyValueForKeyName, getMaxFeedCount, getOrderByClause, getOrderByClauseForKeyField, getPreparedStatement, getQueryStringForParam, getResourceKindFieldsCount, getSchema, getTemplate, getTransText, getUserIDField, getUserIDForFilter, handleRequest, maintainTable, moveRecordPointerToKeyInURL, requiresCompanyIdInjection, requiresSignon, requiresUserIdInjection, shutdown, splitKeyIntoSegments, splitResourceSelectorKeyIntoSegments
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShortCutsResourceKind

public ShortCutsResourceKind(java.lang.String companyID,
                             ApplicationContext applicationContext,
                             ConnectionPool connectionPool,
                             java.lang.String authToken)
Constructor

Parameters:
companyID - default company ID
applicationContext - SData application context
connectionPool - connection pool of the underline DB
authToken - the authentication token
Method Detail

buildCustomizedQueryFields

protected void buildCustomizedQueryFields()
Builds the customized list of fields from multiple RosourceKinds for the CUSTOMIZED_QUERY.


doCreateTable

protected void doCreateTable(java.lang.String companyID,
                             ApplicationContext context,
                             java.sql.Connection connection)
Creates the shortcuts database table if it doesn't exist yet.

Parameters:
companyID - string companyID
context - The application context.
connection - The database connection.

doGet

protected ResourceResponse doGet(SDataRequest request,
                                 java.sql.Connection connection)
                          throws java.sql.SQLException
This method takes appropriate action and generates ResourceResponse based on the specified request

Overrides:
doGet in class JDBCResourceKind
Parameters:
request - the SDataRequest
connection - the JDBC connection object which provides a gateway to access underlying DB
Returns:
The ResourceResponse
Throws:
java.sql.SQLException - SQLException

getResultRecordAndCreateResponse

protected ResourceResponse getResultRecordAndCreateResponse(java.sql.PreparedStatement prepareResultRecordGet,
                                                            int httpResponseCode,
                                                            SDataRequest request)
                                                     throws java.sql.SQLException

Gets a result set with the lone record as specified by the prepared statement, then creates an SData response for that lone record. The response's HTTP response code and resources URL are as specified.

This is intended for use when inserting or updating a record, as the SData specification requires that the response contain the inserted or updated record (where the record includes any automatic changes such as auto-generated key fields).

Overrides:
getResultRecordAndCreateResponse in class JDBCResourceKind
Parameters:
prepareResultRecordGet - The prepared statement for getting that result set that contains a single record (basically the inserted or updated record).
httpResponseCode - The HTTP response code to use.
request - The originating SData request.
Returns:
The SData response for the lone record retrieved from running the prepared statement. The response's HTTP response code and resources URL are as specified.
Throws:
java.sql.SQLException - SQLException

fillResultSetResourceElement

protected SDataResourceElement fillResultSetResourceElement(java.util.List<java.lang.String> selectCriteria,
                                                            java.sql.ResultSet resultSet,
                                                            SDataRequest request)
                                                     throws java.sql.SQLException
Fills a newly created element with the tuple values got from the result set, adds the corresponding values from the portlet resource kind.

Overrides:
fillResultSetResourceElement in class JDBCResourceKind
Parameters:
selectCriteria - the list of columns to be included (presently not supported)
resultSet - the Java's result set which exposes tuples' data
request - the input SDataRequest
Returns:
An SDataResourceElement
Throws:
java.sql.SQLException - SQLException

getPrimaryKey

protected java.lang.String[] getPrimaryKey()
Description copied from class: JDBCResourceKind
Get the primary key of the underlying JDBC table for which one JDBCResourceKindImpl is created

Specified by:
getPrimaryKey in class JDBCResourceKind
Returns:
the primary key

getTableName

public java.lang.String getTableName()
Description copied from class: JDBCResourceKind
Get the JDBC table name for which ResourceKindImpl is created

Specified by:
getTableName in class JDBCResourceKind
Returns:
the JDBC table name

getName

public java.lang.String getName()

getCustomizedQuery

protected java.lang.String getCustomizedQuery()
Description copied from class: JDBCResourceKind
Get the customized SQL query if need to used instead of default query build by JDBCResourceKind

Overrides:
getCustomizedQuery in class JDBCResourceKind
Returns:
the customized SQL query

getTableFields

protected static java.util.List<FieldDefinition> getTableFields()
Returns a list of the fields from the resource kind table

Returns:
a list of the fields from the resource kind table

getAllFields

protected java.util.List<FieldDefinition> getAllFields()
returns a list of FieldDefinitions in the ResourceKind

Specified by:
getAllFields in class JDBCResourceKind
Returns:
FieldDefinition list

getCalculateFieldValue

protected java.lang.String getCalculateFieldValue(java.lang.String value,
                                                  SDataRequest request,
                                                  java.sql.ResultSet resultSet,
                                                  int fieldIndex)
Get the value of the calculated field, if it is a regular (non-calculated) field then the original value will be returned unchanged

Specified by:
getCalculateFieldValue in class JDBCResourceKind
Parameters:
value - value of the field
request - the input SDataRequest
resultSet - resultSet returned by query
fieldIndex - fieldIndex - 0-based
Returns:
the value of the field

isUserSpecificResource

public boolean isUserSpecificResource()
Indicates whether the resource is user specific or not. If the resource is user specific, it generally requires user sign on.

Specified by:
isUserSpecificResource in class JDBCResourceKind
Returns:
True if the resource is user specific, false otherwise.

supportDelete

protected boolean supportDelete()
Indicates whether the ResourceKind in general supports DELETE or not.

Specified by:
supportDelete in class JDBCResourceKind
Returns:
True if the ResourceKind supports DELETE, false otherwise.

supportGet

protected boolean supportGet()
Indicates whether the ResourceKind in general supports GET or not.

Specified by:
supportGet in class JDBCResourceKind
Returns:
True if the ResourceKind supports GET, false otherwise.

supportPost

protected boolean supportPost()
Indicates whether the ResourceKind in general supports POST or not.

Specified by:
supportPost in class JDBCResourceKind
Returns:
True if the ResourceKind supports POST, false otherwise.

supportPut

protected boolean supportPut()
Indicates whether the ResourceKind in general supports PUT or not.

Specified by:
supportPut in class JDBCResourceKind
Returns:
True if the ResourceKind supports PUT, false otherwise.


Copyright © 2011 Sage Software, Inc. All rights reserved.