All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zkoss.zk.au.AuWriters Maven / Gradle / Ivy

There is a newer version: 10.0.0-jakarta
Show newest version
/* AuWriters.java

	Purpose:
		
	Description:
		
	History:
		Tue Dec  4 11:20:33     2007, Created by tomyeh

Copyright (C) 2007 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
	This program is distributed under LGPL Version 2.1 in the hope that
	it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zk.au;

import org.zkoss.json.JSONArray;
import org.zkoss.json.JSONObject;
import org.zkoss.zk.au.http.HttpAuWriter;
import org.zkoss.zk.ui.UiException;

/**
 * Utilities to instantiate an implementation of {@link AuWriter}.
 *
 * @author tomyeh
 * @since 3.0.1
 */
public class AuWriters {
	/** The implementation class of {@link AuWriter}. */
	private static Class _awCls;

	/** Returns the implementation class of {@link AuWriter} that
	 * will be used to generate the output to the client.
	 *
	 * 

Default: {@link HttpAuWriter}. */ public static Class getImplementationClass() { return _awCls != null ? _awCls : HttpAuWriter.class; } /** Sets the implementation class of {@link AuWriter} that * will be used to generate the output to the client. */ public static void setImplementationClass(Class cls) { if (cls != null) if (cls.equals(HttpAuWriter.class)) cls = null; else if (!AuWriter.class.isAssignableFrom(cls)) throw new IllegalArgumentException(cls + " must implement " + AuWriter.class.getName()); _awCls = cls; } /** Creates an instance of {@link AuWriter}. */ public static AuWriter newInstance() throws UiException { if (_awCls != null) { try { return (AuWriter) _awCls.newInstance(); } catch (Exception ex) { throw UiException.Aide.wrap(ex); } } return new HttpAuWriter(); } /** Returns a JSON object representing the output that will be sent * to the client. *

You could add the responses to the given array by invoking * {@link #toJSON}. * * @param rs the array to hold the responses. * To output a response, invoke {@link #toJSON} as follows: * rs.add(AuWriters.toJSON(response)). * @since 5.0.5 */ public static JSONObject getJSONOutput(JSONArray rs) { final JSONObject out = new JSONObject(); out.put("rs", rs); return out; } /** Converts a response to a JSON object. *@since 5.0.5 */ public static JSONArray toJSON(AuResponse response) { final JSONArray r = new JSONArray(); r.add(response.getCommand()); r.add(response.getEncodedData()); return r; } /** The content type of the output. * @since 3.5.0 */ public static final String CONTENT_TYPE = "text/plain;charset=UTF-8"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy