com.smartgwt.client.docs.serverds
Class ServerObject

java.lang.Object
  extended by com.smartgwt.client.docs.serverds.ServerObject

public class ServerObject
extends java.lang.Object

This class is not meant to be created and used, it is actually documentation of settings allowed in a DataSource descriptor (.ds.xml file). See com.smartgwt.client.docs.serverds for how to use this documentation.

The ServerObject tells the ISC server how to find or create a server-side object involved in DMI (Direct Method Invocation).

A ServerObject declaration appears in the XML definition of a DataSource (for responding to DSRequests) or in an Application configuration file (.app.xml) for responding to RPCRequests.

NOTE: Please take note of the points made in this discussion of caching and thread-safety issues in server-side DataSources.


Field Summary
 java.lang.String attributeName
          Specifies the name of the attribute by which to look up the DMI instance.
 java.lang.String attributeScope
          Specifies the scope in which the DMI instance is to be looked up.
 java.lang.String bean
          For use when lookupStyle is "spring", id of the bean to ask Spring to create.
 java.lang.String className
          Specifies the fully-qualified class name that provides the server-side endpoint of the DMI (lookupStyle:"new") or the class name of the factory that produces the DMI instance (lookupStyle:"factory").
 java.lang.Boolean crudOnly
          For a ServerObject defined at the DataSource level, by default we only allow it to intercept standard CRUD operations (ie, ordinary fetches, adds, updates and removes).
 java.lang.Boolean dropExtraFields
          By default, for DMI DSResponses, DSResponse.data is filtered on the server to just the set of fields defined on the DataSource.
 java.lang.String ID
          You can optionally specify an ID on the ServerObject config block - in which case you can use that value as the "className" argument when calling DMI.call.
 java.lang.String lookupStyle
          Specifies the mechanism for locating the class instance on which to invoke the method.
 java.lang.String methodName
          Specifies the name of the method to call for operations using this ServerObject.
 java.lang.String targetXPath
          If set, the Smart GWT server will use JXPath to call your server code.
 java.lang.String[] visibleMethods
          When the ServerObject appears in a .app.xml file (for RPC DMI), this property specifies the list of methods on the ServerObject that are callable from the client.
 
Constructor Summary
ServerObject()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dropExtraFields

public java.lang.Boolean dropExtraFields
By default, for DMI DSResponses, DSResponse.data is filtered on the server to just the set of fields defined on the DataSource. This behavior can be overridden in several ways - see the overview in DMI for details. The value of this attribute overrides dropExtraFields.

Default value is null


crudOnly

public java.lang.Boolean crudOnly
For a ServerObject defined at the DataSource level, by default we only allow it to intercept standard CRUD operations (ie, ordinary fetches, adds, updates and removes). To allow the ServerObject to intercept other types of operation - custom operations, validations, etc - set this property to false. Note that ServerObjects declared at the OperationBinding level always intercept that operation, whatever its type, and this property has no effect.

NOTE: If you are intercepting operations on the server because you wish to inspect them before deciding whether to process them with bespoke code or allow them to proceed with normal processing, the way to invoke normal processing without causing any interference is:

     return dsRequest.execute();
  

Default value is null


attributeScope

public java.lang.String attributeScope
Specifies the scope in which the DMI instance is to be looked up. Valid values are: "request", "session", and "application". If attributeScope is left out of the ServerObject definition, then all scopes are searched in the order in which they are listed above.

This attribute is consulted only when the value of lookupStyle is "attribute".

Default value is null

See Also:
attributeName, lookupStyle

bean

public java.lang.String bean
For use when lookupStyle is "spring", id of the bean to ask Spring to create.

Default value is null


className

public java.lang.String className
Specifies the fully-qualified class name that provides the server-side endpoint of the DMI (lookupStyle:"new") or the class name of the factory that produces the DMI instance (lookupStyle:"factory").

This is one of the values that you need to pass to DMI.call to invoke the DMI from the client.

The value of this attribute is used only for "new" and "factory" values of lookupStyle.

Default value is null

See Also:
lookupStyle, ID

attributeName

public java.lang.String attributeName
Specifies the name of the attribute by which to look up the DMI instance. This attribute is consulted only when the value of lookupStyle is "attribute".

Default value is null

See Also:
attributeScope, lookupStyle

methodName

public java.lang.String methodName
Specifies the name of the method to call for operations using this ServerObject. This is a DataSource-level default; you can override it for individual operations either by specifying the serverMethod attribute, or by declaring an operation-level serverObject that specifies a different methodName (if you specify both an operationBinding.serverMethod and an operation-level serverObject.methodName, the latter takes precedence)

Default value is null


lookupStyle

public java.lang.String lookupStyle
Specifies the mechanism for locating the class instance on which to invoke the method. Valid values are as follows:

Default value is "new"

See Also:
className, attributeName, attributeScope

ID

public java.lang.String ID
You can optionally specify an ID on the ServerObject config block - in which case you can use that value as the "className" argument when calling DMI.call. This allows you to hide the name of the server-side class used as the factory or implementer of the DMI from the browser as a security precaution.

Default value is null

See Also:
className

targetXPath

public java.lang.String targetXPath
If set, the Smart GWT server will use JXPath to call your server code. The JXPathContext (start point) will be the object arrived at by applying the lookupStyle and related ServerObject properties. The intention of this property is to allow easier access to your existing Java objects and reduce the need to write Smart GWT-specific server code.

Default value is null


visibleMethods

public java.lang.String[] visibleMethods
When the ServerObject appears in a .app.xml file (for RPC DMI), this property specifies the list of methods on the ServerObject that are callable from the client. See the builtin.app.xml file in the /shared/app directory of the SDK for an example of a visibleMethods declaration block.

Default value is null

Constructor Detail

ServerObject

public ServerObject()