org.zkoss.zk.device
Class GenericDevice

java.lang.Object
  extended by org.zkoss.zk.device.GenericDevice
All Implemented Interfaces:
Device
Direct Known Subclasses:
AjaxDevice, XmlDevice

public abstract class GenericDevice
extends java.lang.Object
implements Device

A skeletal implementation of Device.

Since:
3.0.0
Author:
tomyeh

Field Summary
 
Fields inherited from interface org.zkoss.zk.device.Device
RESEND
 
Constructor Summary
GenericDevice()
           
 
Method Summary
 void addEmbedded(java.lang.String content)
          Adds the content that shall be added to the output generated and sent to the client, when rending a desktop.
 java.lang.String getDocType()
          Returns null to indicate not to generate <!
 java.lang.String getEmbedded()
          Returns the content that shall be embedded to the output being generated to the client, or null if no embedded content.
 java.lang.Class getServerPushClass()
          Returns the class that implements the server-push feature (ServerPush) for this device, or null if the default is used.
 java.lang.String getTimeoutURI()
          Deprecated.  
 java.lang.String getType()
          Returns the device type.
 java.lang.String getUnavailableMessage()
          Returns the unavailable message that is shown to the client if the client doesn't support this device.
 void init(java.lang.String type, DeviceConfig config)
          Initializes the device.
 boolean isCacheable()
          Return true to indicate it is cacheable.
 boolean isClient(java.lang.String userAgent, java.lang.String type)
          Tests if a client is the givent type.
 java.lang.Boolean isCompatible(java.lang.String userAgent)
          Returns null to indicate unknown.
 boolean isSupported(int func)
          Returns whether the specified function is supported.
 void sessionDidActivate(Desktop desktop)
          Notification that the desktop, which owns this device, has just been activated (aka., deserialized) by the Web container.
 void sessionWillPassivate(Desktop desktop)
          Notification that the desktop, which owns this device, is about to be passivated (aka., serialized) by the Web container.
 java.lang.Class setServerPushClass(java.lang.Class cls)
          Sets the class that implements the server-push feature (ServerPush) for this device, or null to use the default.
 java.lang.String setTimeoutURI(java.lang.String timeoutURI)
          Deprecated.  
 java.lang.String setUnavailableMessage(java.lang.String msg)
          Sets the unavailable message that is shown to the client if the client doesn't support this device.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.zkoss.zk.device.Device
getContentType
 

Constructor Detail

GenericDevice

public GenericDevice()
Method Detail

isSupported

public boolean isSupported(int func)
Description copied from interface: Device
Returns whether the specified function is supported.

Specified by:
isSupported in interface Device
Parameters:
func - the function. It can be one of Device.RESEND.

getType

public java.lang.String getType()
Description copied from interface: Device
Returns the device type.

Specified by:
getType in interface Device

isCacheable

public boolean isCacheable()
Return true to indicate it is cacheable.

Specified by:
isCacheable in interface Device

isCompatible

public java.lang.Boolean isCompatible(java.lang.String userAgent)
Returns null to indicate unknown. Deriving should override it to provide more precise information.

Specified by:
isCompatible in interface Device
Parameters:
userAgent - represents a client. For HTTP clients, It is the user-agent header.
Returns:
Boolean.TRUE if this device supports the specified client, Boolean.FALSE if cannot, or null if unknown.
See Also:
Execution.getUserAgent(), Devices.getDeviceByClient(java.lang.String)

getUnavailableMessage

public java.lang.String getUnavailableMessage()
Description copied from interface: Device
Returns the unavailable message that is shown to the client if the client doesn't support this device.

Specified by:
getUnavailableMessage in interface Device
Returns:
the unavailable message, or null if no such message

setUnavailableMessage

public java.lang.String setUnavailableMessage(java.lang.String msg)
Description copied from interface: Device
Sets the unavailable message that is shown to the client if the client doesn't support this device.

Specified by:
setUnavailableMessage in interface Device
Parameters:
msg - the unavailable message.
Returns:
the previous unavailable message, or null if not such message

getTimeoutURI

public java.lang.String getTimeoutURI()
Deprecated. 

Specified by:
getTimeoutURI in interface Device

setTimeoutURI

public java.lang.String setTimeoutURI(java.lang.String timeoutURI)
Deprecated. 

Specified by:
setTimeoutURI in interface Device

setServerPushClass

public java.lang.Class setServerPushClass(java.lang.Class cls)
Description copied from interface: Device
Sets the class that implements the server-push feature (ServerPush) for this device, or null to use the default.

Default: PollingServerPush.

If ZK EE (with zkmax.jar) is loaded, the COMET-based server push (CometServerPush) is the default.

Specified by:
setServerPushClass in interface Device
Returns:
the previous class, or null if not available.

getServerPushClass

public java.lang.Class getServerPushClass()
Description copied from interface: Device
Returns the class that implements the server-push feature (ServerPush) for this device, or null if the default is used.

Specified by:
getServerPushClass in interface Device

getDocType

public java.lang.String getDocType()
Returns null to indicate not to generate <!DOCTYPE> at all.

Specified by:
getDocType in interface Device

addEmbedded

public void addEmbedded(java.lang.String content)
Description copied from interface: Device
Adds the content that shall be added to the output generated and sent to the client, when rending a desktop. What content can be embedded depends on the device. For Ajax devices, it can be anything that can be placed inside HTML HEAD, such as JavaScript codes.

As the method name suggests, the embedded contents are accumulated and all generated to the output.

Specified by:
addEmbedded in interface Device

getEmbedded

public java.lang.String getEmbedded()
Description copied from interface: Device
Returns the content that shall be embedded to the output being generated to the client, or null if no embedded content.

Specified by:
getEmbedded in interface Device

isClient

public boolean isClient(java.lang.String userAgent,
                        java.lang.String type)
Tests if a client is the givent type.

This implementation always return false.

Specified by:
isClient in interface Device
Parameters:
userAgent - represents a client.
type - the type of the browser.
Returns:
true if it matches, false if unable to identify
Since:
5.0.0

init

public void init(java.lang.String type,
                 DeviceConfig config)
Description copied from interface: Device
Initializes the device. A device is created for each desktop, and this method is called when it is associated to the desktop.

Specified by:
init in interface Device
Parameters:
type - the device type (never null)
config - the configuration to initialize the device (never null)

sessionWillPassivate

public void sessionWillPassivate(Desktop desktop)
Description copied from interface: Device
Notification that the desktop, which owns this device, is about to be passivated (aka., serialized) by the Web container.

Specified by:
sessionWillPassivate in interface Device

sessionDidActivate

public void sessionDidActivate(Desktop desktop)
Description copied from interface: Device
Notification that the desktop, which owns this device, has just been activated (aka., deserialized) by the Web container.

Specified by:
sessionDidActivate in interface Device


Copyright © 2005-2009 Potix Corporation. All Rights Reserved. SourceForge.net Logo