| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectatg.nucleus.logging.VariableArgumentApplicationLoggingImpl
atg.nucleus.GenericService
atg.rest.input.RestInputCustomizerImpl
atg.rest.input.JSONInputCustomizer
public class JSONInputCustomizer
This class implements a JSON REST input customizer. A REST input customizer is used to parse data which is sent in a REST request.
RestInputCustomizer| Field Summary | |
|---|---|
| static java.lang.String | CLASS_VERSIONClass version string | 
| static java.lang.String | MAP_CLASS | 
| Fields inherited from class atg.rest.input.RestInputCustomizerImpl | 
|---|
| SPACE | 
| Fields inherited from class atg.nucleus.GenericService | 
|---|
| SERVICE_INFO_KEY | 
| Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging | 
|---|
| DEFAULT_LOG_TRACE_STATUS | 
| Fields inherited from interface atg.nucleus.logging.ApplicationLogging | 
|---|
| DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS | 
| Constructor Summary | |
|---|---|
| JSONInputCustomizer()Constructor | |
| Method Summary | |
|---|---|
|  java.util.Map<java.lang.String,java.lang.Object> | convertToMap(java.lang.Object pObject,
             DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)Converts the supplied object to a Map of parameters. | 
|  java.lang.Class<?> | getContainerClass()Returns the JSONObject class object, the container used for JSON data. | 
|  java.lang.Object | instantiateObjectParameter(java.lang.Object pJSON,
                           DynamoHttpServletRequest pRequest,
                           DynamoHttpServletResponse pResponse)Instantiates an object argument from the given JSONObject. | 
| protected  boolean | isMultiValued(java.lang.Class<?> pClass)Returns true if pClass is a Collection (List or Set) or a Map. | 
| static JSONObject | isValidJSONString(java.lang.String pString)Returns a JSONObject if the specified string is a valid JSON string, null otherwise | 
|  boolean | isValidTypeString(java.lang.String pData)Returns true if the specified string is a valid JSON string, false otherwise | 
|  java.lang.Object | parseString(java.lang.String pData,
            DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)Returns a JSONObject representing the data from the pData string | 
| protected  java.lang.Object | processJSONMultiValue(java.lang.Object pObj,
                      JSONObject pMultiValueDescriptor,
                      java.lang.Class<?> pPropType,
                      java.lang.String pPropName,
                      DynamoHttpServletRequest pRequest,
                      DynamoHttpServletResponse pResponse)process a json multi value, convert it into a java object | 
| protected  java.lang.Object | produceMultivalueComponentObject(java.lang.Object pCurrentValue,
                                 JSONObject pMultiValueDescriptor,
                                 DynamoHttpServletRequest pRequest,
                                 DynamoHttpServletResponse pResponse)produce a result object for a multivalue component item | 
|  java.lang.String[] | splitMultipleStringsAtCharacter(java.lang.String pData,
                                char pChar)Splits multiple json strings at the specified character | 
| Methods inherited from class atg.rest.input.RestInputCustomizerImpl | 
|---|
| getAcceptableMimeTypes, getEncoding, getFormat, getInputCustomizer, getInputCustomizer, getMapKeyElementString, getMapValueElementString, javaInstanceForClass, setAcceptableMimeTypes, setEncoding, setFormat, setMapKeyElementString, setMapValueElementString | 
| Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl | 
|---|
| vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static java.lang.String CLASS_VERSION
public static java.lang.String MAP_CLASS
| Constructor Detail | 
|---|
public JSONInputCustomizer()
| Method Detail | 
|---|
public java.lang.Class<?> getContainerClass()
public java.lang.Object parseString(java.lang.String pData,
                                    DynamoHttpServletRequest pRequest,
                                    DynamoHttpServletResponse pResponse)
                             throws RestException
pData - a String which contains the data streampRequest - the servlet requestpResponse - the servlet response
RestException - if the string in pData cannot be parsed
public java.util.Map<java.lang.String,java.lang.Object> convertToMap(java.lang.Object pObject,
                                                                     DynamoHttpServletRequest pRequest,
                                                                     DynamoHttpServletResponse pResponse)
                                                              throws RestException
pObject - the object to convert, a JSONObjectpRequest - the servlet requestpResponse - the servlet response
RestException - if pObject is not a JSONObject or if an error occurs reading from pObject
public java.lang.Object instantiateObjectParameter(java.lang.Object pJSON,
                                                   DynamoHttpServletRequest pRequest,
                                                   DynamoHttpServletResponse pResponse)
                                            throws RestException
 {arg1 : {
   "atg-rest-class-type":"foo.class.WithNestedMultis",
   "atg-rest-class-descriptor": {
     "myListOfSets": {
       "container-class": "java.util.ArrayList",
       "element-class": "java.util.HashSet"
     }
   },
   "myListOfSets": [["red","blue"],["green","yellow"]]
 }}
 
 
 See "Nested Multiple Value Objects in Input" section of ATG Web Services and Integration Framework Guide.
pJSON - the JSONObject which contains the data for the object to instantiatepRequest - the servlet requestpResponse - the servlet response
RestException - if there is neither an "atg-rest-class-type" property or "class" property or if pJSON is not a JSONObjectprotected boolean isMultiValued(java.lang.Class<?> pClass)
pClass - The class we are testing to see if it's multi-valued.
protected java.lang.Object processJSONMultiValue(java.lang.Object pObj,
                                                 JSONObject pMultiValueDescriptor,
                                                 java.lang.Class<?> pPropType,
                                                 java.lang.String pPropName,
                                                 DynamoHttpServletRequest pRequest,
                                                 DynamoHttpServletResponse pResponse)
                                          throws RestException
pObj - the json objectpMultiValueDescriptor - the type descriptorpPropType - the property type for the objectpPropName - the name of the propertypRequest - the Dynamo requestpResponse - the Dynamo response
java.lang.Exception - if there was an error creating the java multi value object
RestException
protected java.lang.Object produceMultivalueComponentObject(java.lang.Object pCurrentValue,
                                                            JSONObject pMultiValueDescriptor,
                                                            DynamoHttpServletRequest pRequest,
                                                            DynamoHttpServletResponse pResponse)
                                                     throws RestException
pCurrentValue - the current json valuepMultiValueDescriptor - the current type descriptorpRequest - the dynamo requestpResponse - the dynamo response
java.lang.Exception - if there was an error producing the java object
RestException
public java.lang.String[] splitMultipleStringsAtCharacter(java.lang.String pData,
                                                          char pChar)
pData - the string to splitpChar - the character to split at
public static JSONObject isValidJSONString(java.lang.String pString)
pString - the string to test
public boolean isValidTypeString(java.lang.String pData)
pData - the string to test
| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||