/* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. Smart GWT is also * available under typical commercial license terms - see * http://smartclient.com/license * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package com.smartgwt.client.types; /** * Indicates the format to be used for HTTP requests and responses when fulfilling DSRequests (eg, when {@link * com.smartgwt.client.data.DataSource#fetchData DataSource.fetchData} is called). <P> Note that {@link * com.smartgwt.client.rpc.RPCManager#startQueue request queuing} is only available for "iscServer" requests. */ public enum DSDataFormat implements ValueEnum { /** * Make an HTTP request in a format recognized by the ISC server and expect ISC server response format. {@link * com.smartgwt.client.docs.ServerDataIntegration Server-side integration} can then be used to connect to any kind of data * store or web service. */ ISCSERVER("iscServer"), /** * Expect XML responses. Request format depends on the setting for {@link * com.smartgwt.client.data.OperationBinding#getDataProtocol protocol}. This is the correct setting when consuming RSS * feeds, XML web services (whether SOAP, REST, XML-RPC or custom format), and XML flat files directly from the browser. * <P> Values for "date", "time" or "datetime" fields in responses should be specified in the applicable <a target=_blank * href="http://www.w3.org/TR/xmlschema-2/#dateTime">XML Schema date format</a>. If no timezone is explicitly specified, * dates / datetimes received by the client are assumed to be GMT. Note that "date" type fields represent logical dates * and may omit time information entirely, and "time" type fields may omit date information. See {@link * com.smartgwt.client.docs.DateFormatAndStorage Date and Time Format and storage} for more information on how date values * are serialized in requests sent to the server. <P> A DSResponse will be derived from the returned XML via the process * described under {@link com.smartgwt.client.data.DataSource#transformResponse DataSource.transformResponse}. */ XML("xml"), /** * Expect response in JSON <a href='http://json.org' onclick="window.open('http://json.org');return false;">(Java Script * Object Notation)</a> format, ready to be eval()'d. Response should either be a naked object literal:<br> * <code>    { "property":"value1", "property2" : "value2", ... }</code><br> or a string that evals to * return a valid response object:<br> <code>    var response = { "property":"value1", "property2" : * "value2", ... }</code> <br> <code>    response;</code><br> <P> A DSResponse will be derived from the * returned JSON via the process described under {@link com.smartgwt.client.data.DataSource#transformResponse * DataSource.transformResponse}. <P> As with <code>"xml"</code> responses, values for "date" or "datetime" fields should * be specified as a String in <a target=_blank href="http://www.w3.org/TR/xmlschema-2/#dateTime">XML Schema date * format</a> and may include a timezone. In the absence of a timezone they will be assumed to be GMT. <P> Request format * depends on the setting for {@link com.smartgwt.client.data.OperationBinding#getDataProtocol protocol}. See also {@link * com.smartgwt.client.data.XJSONDataSource}. */ JSON("json"), /** * Smart GWT will not attempt to parse the response, instead, {@link com.smartgwt.client.data.DataSource#transformResponse * DataSource.transformResponse} must be implemented. <code>transformResponse</code> will receive the "data" parameter as a * String, and must parse this String into an Array of Objects, which should be set as {@link * com.smartgwt.client.data.DSResponse#getData data}. Request format depends on the setting for {@link * com.smartgwt.client.data.OperationBinding#getDataProtocol protocol}. <P> Note that, unlike either the "json" or "xml" * settings of <code>dataFormat</code>, you are responsible for ensuring that parsed values are the correct type, for * example, using the JavaScript built-ins <code>parseInt</code> and <code>parseFloat</code> on integer and decimal values * respectively, and using <code>new Date()</code> to construct valid Dates. */ CUSTOM("custom"); private String value; DSDataFormat(String value) { this.value = value; } public String getValue() { return this.value; } }