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.