View a 2-minute
demonstration of InetSoft's easy, agile, and robust BI software.
3. public ObjectMetaData getRequestParameter(String request)
This method gets the request parameter type. The parameter can be constructed when building a query and is
passed to the data loaded in execute().
- e.g. public ObjectMetaData getRequestParameter(String request)
{if(request.equals(“salesForEmployee“)) { return new ObjectMetaData(new String[]
{"fiscalYear"},new Class[] {(new Integer(0)).getClass()}); }else if(...) { ... }}
4. public Object execute(String request, VariableTable params, XSelection columns, XNodePath
condition) throws ConditionNotSupportedException
This method executes a request. If any condition is defined, the condition is passed to the execute
method. The method may choose to handle the conditions, or throw a ConditionNotSupportedException. If the
exception is thrown, the engine will call execute() again without the condition parameter passed in, and
will handle the filtering as part of the post processing. The following return types are supported: XTable
object, XTableNode object, or a two-dimensional array in which the first row serves as the column headers.
The Data Helper may be required under the following circumstances:
Your Data Loader is based on the (‘DataLoader’ interface or Introspection)
AND the return object class has only primitive attributes but does not follow the Java Bean naming
conventions.
OR the return object class has any hierarchy.
The data helper class must implement the ‘inetsoft.uql.object.DataHelper’ interface, which
defines the following two methods:
1. public XTypeNode[] getAttributes(Class cls)
Given a class, this method should return an array of field types. Each type can be a primitive type such as
those below, or a more complex type that represents an object tree:
- string (inetsoft.uql.schema.StringType),
- integer (inetsoft.uql.schema.IntegerType),
- date (inetsoft.uql.schema.DateType), etc.
2. public Object getValue(Object obj, String name)
This method returns the value of a field. The name is the name of the field, and the obj parameter is the
data object. The data helper overrides the introspection in two ways. At design time, introspection is not
used to discover object fields. Instead, the getAttributes() method is called on the DataHelper to find the
fields. At runtime, field values are returned using the getValue() method of the DataHelper, instead of
calling the getter method on the data object itself. In order to define an object data source, all the
necessary files need to be put into a directory, say an ‘object’ directory. The list of necessary
files includes the
- data loader class,
- data helper class, if any, and
- all the object classes.
The parent directory of this ‘object’ directory then needs to be included in the classpath.