public final class MarshallingService extends Object
The current instance may bet retrieved by calling MarshallingService.getCurrentInstance(ExternalContext).
To configure the MarshallingService for the current application, create a org.apache.myfaces.trinidad.config.Configurator subclass and override init like this: public void init(ExternalContext externalContext) { super.init(externalContext); MarshallingService marshaller = MarshallingService.getCurrentInstance(externalContext); // register a JSDecoder marshaller.registerJSDecoder("jsObject", "string", StringArrayJSDecoder.getInstance()); Then register your Configurator subclass in the META-INF/services/org.apache.myfaces.trinidad.config.Configurator file.
Configurator.init(javax.faces.context.ExternalContext)| Modifier and Type | Method and Description |
|---|---|
static MarshallingService |
getCurrentInstance(javax.faces.context.ExternalContext eContext)
Returns the current instance of the Marshalling service
|
Collection<ClientFlavorDecoder<?>> |
getJSDecoders(javax.faces.context.FacesContext context, String jsDataFlavorKind, String jsDataFlavorDiscriminant)
Returns the Collection of JavaScript ClientFlavorDecoders for the specified client flavor kind and discriminant.
|
DataFlavor<?> |
getServerDataFlavor(String clientDataFlavor)
Returns the server DataFlavor that the client data flavor is equivalent to.
|
void |
registerClientDataFlavorAlias(String clientDataFlavor, DataFlavor<?> dataFlavor)
Registers a mapping between a client data flavor and the equivalent server DataFlavor.
|
void |
registerJSDecoder(String jsDataFlavorKind, String jsDataFlavorDiscriminant, ClientFlavorDecoder<?> decoder)
Registeres a ClientFlavorDecoder for the specified flavor kind and discrimiant.
|
public static MarshallingService getCurrentInstance(javax.faces.context.ExternalContext eContext)
eContext - the ExternalContext.public final void registerClientDataFlavorAlias(String clientDataFlavor, DataFlavor<?> dataFlavor)
clientDataFlavor -dataFlavor -IllegalStateException - if a DataFlavor has already been registered for this clientDataFlavorgetServerDataFlavor(java.lang.String)public final DataFlavor<?> getServerDataFlavor(String clientDataFlavor)
clientDataFlavor -null if no mapping is registeredpublic void registerJSDecoder(String jsDataFlavorKind, String jsDataFlavorDiscriminant, ClientFlavorDecoder<?> decoder)
jsDataFlavorKind - Client flavor kind to retrieve decoders forjsDataFlavorDiscriminant - Client flavor discriminant, if any to retrieve decoders for.decoder - ClientFlavorDecoder to registerpublic Collection<ClientFlavorDecoder<?>> getJSDecoders(javax.faces.context.FacesContext context, String jsDataFlavorKind, String jsDataFlavorDiscriminant)
A ClientFlavorDecoder registered with no discriminant applies to all discriminants.
context - Current FacesContextjsDataFlavorKind - Client flavor kind to retrieve decoders forjsDataFlavorDiscriminant - Client flavor discriminant, if any to retrieve decoders for.