/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.security.mapping;
import java.util.Map;
/**
* A provider with mapping functionality
* @author <a href="mailto:Anil.Saldhana@jboss.org">Anil Saldhana</a>
* @version $Revision$
* @param <T>
* @since Aug 24, 2006
*/
public interface MappingProvider<T>
{
/**
* Initialize the provider with the configured module options
* @param options
*/
void init(Map<String,Object> options);
/**
* Map the passed object
* @param map A read-only contextual map that can provide information to the provider
* @param mappedObject an Object on which the mapping will be applied
* @throws IllegalArgumentException if the mappedObject is not understood by the
* provider.
*/
void performMapping(Map<String,Object> map, T mappedObject);
/**
* Injected by the MappingContext
* @param result
*/
void setMappingResult(MappingResult<T> result);
/**
* Whether this mapping provider supports
* mapping T
* @param t
* @return
*/
boolean supports(Class<?> p);
}