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

org.jboss.security.mapping.MappingContext Maven / Gradle / Ivy

/*
 * JBoss, the OpenSource J2EE webOS
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */ 
package org.jboss.security.mapping;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 *  Generic Context used by the Mapping Framework
 *  @author Anil Saldhana
 *  @version $Revision$
 * @param 
 *  @since  Aug 24, 2006
 */
public class MappingContext
{ 
   private List> modules = new ArrayList>();
   private MappingResult result; 
   
   public MappingContext(List> mod)
   { 
      this.modules = mod;
   }
   
   /**
    * Get the set of mapping modules
    * @return
    */
   public List> getModules()
   {
      return this.modules;
   }
   
   /**
    * Apply mapping semantics on the passed object
    * @param contextMap Read-only Contextual Map
    * @param mappedObject an object on which mapping will be applied 
    */
   public void performMapping(Map contextMap, T mappedObject)
   {
      int len = modules.size(); 
      
      result = new MappingResult();
      
      for(int i = 0 ; i < len; i++)
      {
         MappingProvider mp = (MappingProvider)modules.get(i);
         mp.setMappingResult(result);
         mp.performMapping(contextMap, mappedObject);
      } 
   } 
   
   /**
    * 
    * @return Result of previous mapping operation
    */
   public MappingResult getMappingResult()
   {
      return result;
   }
   
   /**
    * Optimization Step to determine if we have configured mapping modules
    * to avoid unnecessary mapping step
    * @return true - at least one mapping provider is configured
    */
   public boolean hasModules()
   {
      return this.modules.size() > 0;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy