jasperserver/repository.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2007 JasperSoft http://www.jaspersoft.com
00003  * 
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation; either version 2 of the License, or
00007  * (at your option) any later version.
00008  * 
00009  * This program is distributed WITHOUT ANY WARRANTY; and without the 
00010  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00011  * See the GNU General Public License for more details.
00012  * 
00013  * You should have received a copy of the GNU General Public License
00014  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt 
00015  * or write to:
00016  * 
00017  * Free Software Foundation, Inc.,
00018  * 59 Temple Place - Suite 330,
00019  * Boston, MA  USA  02111-1307
00020  */
00021 
00022 #ifndef jasperserver_repository_H
00023 #define jasperserver_repository_H
00024 
00025 #include "stringbuffer.h"
00026 
00027 #define         JS_TYPE_FOLDER  "folder"
00028 #define         JS_TYPE_REPORTUNIT  "reportUnit"
00029 #define         JS_TYPE_DATASOURCE  "datasource"
00030 #define         JS_TYPE_DATASOURCE_JDBC  "jdbc"
00031 #define         JS_TYPE_DATASOURCE_JNDI  "jndi"
00032 #define         JS_TYPE_DATASOURCE_BEAN  "bean"
00033 #define         JS_TYPE_IMAGE  "img"
00034 #define         JS_TYPE_FONT  "font"
00035 #define         JS_TYPE_JRXML  "jrxml"
00036 #define         JS_TYPE_CLASS_JAR  "jar"
00037 #define         JS_TYPE_RESOURCE_BUNDLE  "prop"
00038 #define         JS_TYPE_REFERENCE  "reference"
00039 #define         JS_TYPE_INPUT_CONTROL  "inputControl"
00040 #define         JS_TYPE_DATA_TYPE  "dataType"
00041 #define         JS_TYPE_OLAP_MONDRIAN_CONNECTION  "olapMondrianCon"
00042 #define         JS_TYPE_OLAP_XMLA_CONNECTION  "olapXmlaCon"
00043 #define         JS_TYPE_MONDRIAN_SCHEMA  "olapMondrianSchema"
00044 #define         JS_TYPE_XMLA_CONNTCTION  "xmlaConnection"
00045 #define         JS_TYPE_UNKNOW  "unknow"
00046 #define         JS_TYPE_LOV  "lov" // List of values...
00047 #define         JS_TYPE_QUERY  "query" // Query...
00048     
00049     
00053 #define         JS_DT_TYPE_TEXT  1
00054 #define         JS_DT_TYPE_NUMBER  2
00055 #define         JS_DT_TYPE_DATE  3
00056 #define         JS_DT_TYPE_DATE_TIME  4 
00057     
00061 #define         JS_IC_TYPE_BOOLEAN  1
00062 #define         JS_IC_TYPE_SINGLE_VALUE  2
00063 #define         JS_IC_TYPE_SINGLE_SELECT_LIST_OF_VALUES  3
00064 #define         JS_IC_TYPE_SINGLE_SELECT_QUERY  4
00065 #define         JS_IC_TYPE_MULTI_VALUE  5
00066 #define         JS_IC_TYPE_MULTI_SELECT_LIST_OF_VALUES  6
00067 #define         JS_IC_TYPE_MULTI_SELECT_QUERY  7
00068     
00069 #define         JS_IC_TYPE_SINGLE_SELECT_LIST_OF_VALUES_RADIO  8
00070 #define         JS_IC_TYPE_SINGLE_SELECT_QUERY_RADIO  9
00071 #define         JS_IC_TYPE_MULTI_SELECT_LIST_OF_VALUES_CHECKBOX  10
00072 #define         JS_IC_TYPE_MULTI_SELECT_QUERY_CHECKBOX  11
00073     
00074 #define         JS_PROP_VERSION  "PROP_VERSION"
00075 #define         JS_PROP_PARENT_FOLDER  "PROP_PARENT_FOLDER"
00076 #define         JS_PROP_RESOURCE_TYPE  "PROP_RESOURCE_TYPE"
00077 #define         JS_PROP_CREATION_DATE  "PROP_CREATION_DATE"
00078 #define         JS_PROP_REFERENCE_URI  "PROP_REFERENCE_URI"
00079 
00080 // File resource properties
00081 #define         JS_PROP_FILERESOURCE_HAS_DATA  "PROP_HAS_DATA"
00082 #define         JS_PROP_FILERESOURCE_IS_REFERENCE  "PROP_IS_REFERENCE"
00083 #define         JS_PROP_FILERESOURCE_REFERENCE_URI  "PROP_REFERENCE_URI"
00084 #define         JS_PROP_FILERESOURCE_WSTYPE  "PROP_WSTYPE"
00085     
00086 // Datasource properties
00087 #define         JS_PROP_DATASOURCE_DRIVER_CLASS  "PROP_DATASOURCE_DRIVER_CLASS"
00088 #define         JS_PROP_DATASOURCE_CONNECTION_URL  "PROP_DATASOURCE_CONNECTION_URL"
00089 #define         JS_PROP_DATASOURCE_USERNAME  "PROP_DATASOURCE_USERNAME"
00090 #define         JS_PROP_DATASOURCE_PASSWORD  "PROP_DATASOURCE_PASSWORD"
00091 #define         JS_PROP_DATASOURCE_JNDI_NAME  "PROP_DATASOURCE_JNDI_NAME"
00092 #define         JS_PROP_DATASOURCE_BEAN_NAME  "PROP_DATASOURCE_BEAN_NAME"
00093 #define         JS_PROP_DATASOURCE_BEAN_METHOD  "PROP_DATASOURCE_BEAN_METHOD"
00094     
00095     
00096 // ReportUnit resource properties
00097 #define         JS_PROP_RU_DATASOURCE_TYPE  "PROP_RU_DATASOURCE_TYPE"
00098 #define         JS_PROP_RU_IS_MAIN_REPORT  "PROP_RU_IS_MAIN_REPORT"
00099 #define         JS_PROP_RU_INPUTCONTROL_RENDERING_VIEW  "PROP_RU_INPUTCONTROL_RENDERING_VIEW"
00100 #define         JS_PROP_RU_REPORT_RENDERING_VIEW  "PROP_RU_REPORT_RENDERING_VIEW"
00101     
00102 // DataType resource properties
00103 #define         JS_PROP_DATATYPE_STRICT_MAX  "PROP_DATATYPE_STRICT_MAX"
00104 #define         JS_PROP_DATATYPE_STRICT_MIN  "PROP_DATATYPE_STRICT_MIN"
00105 #define         JS_PROP_DATATYPE_MIN_VALUE  "PROP_DATATYPE_MIN_VALUE"
00106 #define         JS_PROP_DATATYPE_MAX_VALUE  "PROP_DATATYPE_MAX_VALUE"
00107 #define         JS_PROP_DATATYPE_PATTERN  "PROP_DATATYPE_PATTERN"
00108 #define         JS_PROP_DATATYPE_TYPE  "PROP_DATATYPE_TYPE"
00109     
00110  // ListOfValues resource properties
00111 #define         JS_PROP_LOV  "PROP_LOV"
00112 #define         JS_PROP_LOV_LABEL  "PROP_LOV_LABEL"
00113 #define         JS_PROP_LOV_VALUE  "PROP_LOV_VALUE"
00114     
00115     
00116 // InputControl resource properties
00117 #define         JS_PROP_INPUTCONTROL_TYPE  "PROP_INPUTCONTROL_TYPE"
00118 #define         JS_PROP_INPUTCONTROL_IS_MANDATORY  "PROP_INPUTCONTROL_IS_MANDATORY"
00119 #define         JS_PROP_INPUTCONTROL_IS_READONLY  "PROP_INPUTCONTROL_IS_READONLY"
00120     
00121 // SQL resource properties
00122 #define         JS_PROP_QUERY  "PROP_QUERY"
00123 #define         JS_PROP_QUERY_VISIBLE_COLUMNS  "PROP_QUERY_VISIBLE_COLUMNS"
00124 #define         JS_PROP_QUERY_VISIBLE_COLUMN_NAME  "PROP_QUERY_VISIBLE_COLUMN_NAME"
00125 #define         JS_PROP_QUERY_VALUE_COLUMN  "PROP_QUERY_VALUE_COLUMN"
00126 #define         JS_PROP_QUERY_LANGUAGE  "PROP_QUERY_LANGUAGE"
00127     
00128     
00129 // SQL resource properties
00130 #define         JS_PROP_QUERY_DATA  "PROP_QUERY_DATA"
00131 #define         JS_PROP_QUERY_DATA_ROW  "PROP_QUERY_DATA_ROW"
00132 #define         JS_PROP_QUERY_DATA_ROW_COLUMN  "PROP_QUERY_DATA_ROW_COLUMN"
00133     
00134     
00135 // OLAP XMLA Connection
00136 #define         JS_PROP_XMLA_URI  "PROP_XMLA_URI"
00137 #define         JS_PROP_XMLA_CATALOG  "PROP_XMLA_CATALOG"
00138 #define         JS_PROP_XMLA_DATASOURCE  "PROP_XMLA_DATASOURCE"
00139 #define         JS_PROP_XMLA_USERNAME  "PROP_XMLA_USERNAME"
00140 #define         JS_PROP_XMLA_PASSWORD  "PROP_XMLA_PASSWORD"
00141 
00142 /* Argument constants */
00143 #define         JS_ARG_MODIFY_REPORTUNIT  "MODIFY_REPORTUNIT_URI"
00144 #define         JS_ARG_CREATE_REPORTUNIT  "CREATE_REPORTUNIT_BOOLEAN"
00145 #define         JS_ARG_LIST_DATASOURCES   "LIST_DATASOURCES"
00146 #define         JS_ARG_IC_GET_QUERY_DATA   "IC_GET_QUERY_DATA"
00147 #define         JS_ARG_VALUE_TRUE  "true"
00148 #define         JS_ARG_VALUE_FALSE  "false" 
00149 #define         JS_ARG_RUN_OUTPUT_FORMAT  "RUN_OUTPUT_FORMAT"
00150 #define         JS_ARG_RUN_OUTPUT_FORMAT_PDF  "PDF"
00151 #define         JS_ARG_RUN_OUTPUT_FORMAT_JRPRINT  "JRPRINT"
00152 #define         JS_ARG_RUN_OUTPUT_FORMAT_HTML  "HTML"
00153 #define         JS_ARG_RUN_OUTPUT_FORMAT_XLS  "XLS"
00154 #define         JS_ARG_RUN_OUTPUT_FORMAT_XML  "XML"
00155 #define         JS_ARG_RUN_OUTPUT_FORMAT_CSV  "CSV"
00156 #define         JS_ARG_RUN_OUTPUT_FORMAT_RTF  "RTF"
00157 #define         JS_ARG_RUN_OUTPUT_IMAGES_URI  "IMAGES_URI"
00158 #define         JS_ARG_RUN_OUTPUT_PAGE  "PAGE"
00159 
00160 /* types of operations */
00161 #define         JS_OPERATION_RUN_REPORT  "runReport"
00162 #define         JS_OPERATION_LIST  "list"
00163 #define         JS_OPERATION_PUT  "put"
00164 #define         JS_OPERATION_GET  "get"
00165 // #define         JS_OPERATION_LOGIN  "login"  // this operation is deprecated.
00166 #define         JS_OPERATION_CHECK_DEPENDS  "checkForDependentResources"
00167 
00168 
00173 typedef struct jasperserver_server
00174 {
00175     jasperserver_string_t* url;                     
00176     jasperserver_string_t* username;                
00177     jasperserver_string_t* password;                
00178 } jasperserver_server_t;
00179 
00180 
00185 typedef struct jasperserver_resource_property
00186 {
00187    struct jasperserver_resource_property *next;  
00188    jasperserver_string_t* name;                     
00189    jasperserver_string_t* value;                    
00190    struct jasperserver_resource_property *properties;     /***<Pointer to the first child ResourceProperty (NULL means no children are available) */
00191 } jasperserver_resource_property_t;
00192 
00197 typedef struct jasperserver_parameter
00198 {
00199    struct jasperserver_parameter *next;  
00200    jasperserver_string_t* name;                
00201    jasperserver_string_t* value;               
00202    int   isListItem;          
00203 } jasperserver_parameter_t;
00204 
00210 typedef jasperserver_parameter_t jasperserver_list_item_t;
00211 
00217 typedef jasperserver_parameter_t jasperserver_argument_t;
00218 
00223 typedef struct jasperserver_resource_descriptor
00224 {
00225     struct jasperserver_resource_descriptor *next;    
00226     jasperserver_string_t* name;                     
00227     jasperserver_string_t* label;                    
00228     jasperserver_string_t* description;              
00229     int   isNew;                      
00230     jasperserver_string_t* wsType;                   
00231     jasperserver_string_t* uriString;                
00233     struct jasperserver_resource_property *properties;     
00234     struct jasperserver_resource_descriptor *children; 
00235     struct jasperserver_parameter *parameters;     
00236 } jasperserver_resource_descriptor_t;
00237 
00242 typedef struct jasperserver_request
00243 {
00244    jasperserver_resource_descriptor_t *resource;    
00245    jasperserver_string_t* opertation;                         
00246    jasperserver_string_t* locale;                             
00247    jasperserver_argument_t *arguments;                    
00248 } jasperserver_request_t;
00249 
00254 typedef struct jasperserver_operation_result
00255 { 
00256    int returnCode;                           
00257    jasperserver_string_t* returnMessage;                      
00258    jasperserver_string_t* version;                            
00259    jasperserver_resource_descriptor_t *resources;   
00260 } jasperserver_operation_result_t;
00261 
00262 
00270 typedef struct jasperserver_list
00271 {
00272   struct jasperserver_list *next;        
00273 } jasperserver_list_t;
00274 
00284 void jasperserver_list_append( jasperserver_list_t **list, jasperserver_list_t *node);
00285 
00298 void jasperserver_list_free(jasperserver_list_t *list, void (*freeFunc)(void *) );
00299 
00313 jasperserver_request_t * jasperserver_request_new();
00314 
00326 void jasperserver_request_free(jasperserver_request_t *request); 
00327 
00340 jasperserver_argument_t *jasperserver_argument_new();
00341 
00351 void jasperserver_argument_free(void *argument); // 
00352 
00365 jasperserver_resource_descriptor_t *jasperserver_resource_descriptor_new();
00366 
00378 void jasperserver_resource_descriptor_free(void *resource_descriptor);
00379 
00392 jasperserver_resource_property_t * jasperserver_resource_property_new();
00393 
00405 void jasperserver_resource_property_free(void *resource_property); 
00406 
00419 jasperserver_parameter_t * jasperserver_parameter_new();
00420 
00432 void jasperserver_parameter_free(void *parameter); // jasperserver_parameter_t * assumed
00433 
00446 jasperserver_operation_result_t * jasperserver_operation_result_new();
00447 
00459 void jasperserver_operation_result_free(void *op_ptr);
00460 
00473 jasperserver_server_t * jasperserver_server_new();
00474 void jasperserver_server_free(void *op_ptr);
00475 
00484 void jasperserver_print_resource_descriptor(jasperserver_resource_descriptor_t *rd, int depth);
00485 
00486 
00498 jasperserver_string_t *jasperserver_get_property_value(jasperserver_resource_descriptor_t *resource, char *propName);
00499 
00510 jasperserver_resource_property_t *jasperserver_get_property(jasperserver_resource_descriptor_t *resource, char *propName);
00511 #endif

Generated on Wed Apr 18 16:55:51 2007 for JasperServer C webservices by  doxygen 1.5.2