Coverage Report - pt.digitalis.dif.dem.objects.parameters.ParameterList
 
Classes in this File Line Coverage Branch Coverage Complexity
ParameterList
0%
0/21
0%
0/6
1,429
 
 1  0
 /**
 2  
  * 2007, Digitalis Informatica. All rights reserved. Distribuicao e Gestao de Informatica, Lda. Estrada de Paco de Arcos
 3  
  * num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999 http://www.digitalis.pt
 4  
  */
 5  
 package pt.digitalis.dif.dem.objects.parameters;
 6  
 
 7  
 import java.util.HashMap;
 8  
 import java.util.Map;
 9  
 
 10  
 import pt.digitalis.dif.exception.objects.ParameterException;
 11  
 
 12  
 /**
 13  
  * A list of parameters
 14  
  * 
 15  
  * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
 16  
  * @created Nov 22, 2007
 17  
  */
 18  0
 public class ParameterList {
 19  
 
 20  
     /** the parameters */
 21  
     @SuppressWarnings({"rawtypes"})
 22  0
     private Map<String, IParameter> parameters = new HashMap<String, IParameter>();
 23  
 
 24  
     /**
 25  
      * Adds a parameter to the list
 26  
      * 
 27  
      * @param parameter
 28  
      *            the parameter to add
 29  
      */
 30  
     public void addParameter(IParameter<?> parameter)
 31  
     {
 32  0
         parameters.put(parameter.getId(), parameter);
 33  0
     }
 34  
 
 35  
     /**
 36  
      * Adds a parameter list to the current one
 37  
      * 
 38  
      * @param list
 39  
      *            the parameter list to add
 40  
      * @return the object with the new list added
 41  
      */
 42  
     public ParameterList addParameters(ParameterList list)
 43  
     {
 44  0
         parameters.putAll(list.getParameters());
 45  
 
 46  0
         return this;
 47  
     }
 48  
 
 49  
     /**
 50  
      * Creates a new instance of the current object
 51  
      * 
 52  
      * @return {@link ParameterList} clone
 53  
      * @throws CloneNotSupportedException
 54  
      */
 55  
     public ParameterList cloneMe() throws CloneNotSupportedException
 56  
     {
 57  0
         ParameterList parameterListObj = new ParameterList();
 58  
 
 59  0
         for (String key: parameters.keySet())
 60  0
             parameterListObj.parameters.put(key, parameters.get(key).clone());
 61  
 
 62  0
         return parameterListObj;
 63  
     }
 64  
 
 65  
     /**
 66  
      * Gets a parameter by it's id
 67  
      * 
 68  
      * @param id
 69  
      *            the id to search
 70  
      * @return the parameter
 71  
      */
 72  
     public IParameter<?> getParameter(String id)
 73  
     {
 74  0
         if (id != null)
 75  0
             id = id.toLowerCase();
 76  
 
 77  0
         return parameters.get(id);
 78  
     }
 79  
 
 80  
     /**
 81  
      * Gets a parameter by it's id
 82  
      * 
 83  
      * @param <T>
 84  
      *            the type of the parameter
 85  
      * @param id
 86  
      *            the id to search
 87  
      * @param clazz
 88  
      *            the class of the parameter
 89  
      * @return the parameter
 90  
      */
 91  
     @SuppressWarnings("unchecked")
 92  
     public <T> IParameter<T> getParameter(String id, Class<T> clazz)
 93  
     {
 94  0
         return parameters.get(id.toLowerCase());
 95  
     }
 96  
 
 97  
     /**
 98  
      * @return the parameters
 99  
      */
 100  
     @SuppressWarnings("rawtypes")
 101  
     public Map<String, IParameter> getParameters()
 102  
     {
 103  0
         return parameters;
 104  
     }
 105  
 
 106  
     /**
 107  
      * Updates a parameter in the list. If it does not exist it is added to the list
 108  
      * 
 109  
      * @param parameter
 110  
      *            the parameter to update
 111  
      * @throws ParameterException
 112  
      *             if the parameter cannot be updated
 113  
      */
 114  
     @SuppressWarnings({"rawtypes", "unchecked"})
 115  
     public void updatesParameter(IParameter parameter) throws ParameterException
 116  
     {
 117  0
         IParameter old = parameters.get(parameter.getId());
 118  
 
 119  0
         if (old == null)
 120  0
             addParameter(parameter);
 121  
         else
 122  0
             old.setValue(parameter.getValue(null), null);
 123  0
     }
 124  
 }