Coverage Report - pt.digitalis.dif.dem.managers.impl.DEMManagerImpl
 
Classes in this File Line Coverage Branch Coverage Complexity
DEMManagerImpl
0%
0/32
0%
0/26
2,7
 
 1  0
 package pt.digitalis.dif.dem.managers.impl;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.Map;
 5  
 
 6  
 import pt.digitalis.dif.dem.DEMRegistryImpl;
 7  
 import pt.digitalis.dif.dem.Entity;
 8  
 import pt.digitalis.dif.dem.interfaces.IApplication;
 9  
 import pt.digitalis.dif.dem.interfaces.IEntity;
 10  
 import pt.digitalis.dif.dem.interfaces.IProvider;
 11  
 import pt.digitalis.dif.dem.interfaces.IService;
 12  
 import pt.digitalis.dif.dem.interfaces.IStage;
 13  
 import pt.digitalis.dif.dem.managers.IDEMManager;
 14  
 
 15  
 /**
 16  
  * This class manages the DEM entities, providing the connections between the elements to the CodeGen module. TODO: Do
 17  
  * performance tests to determine if the getters that search sequentially the Maps are too slow. One could keep an index
 18  
  * of IDs for each entity and gather by direct id searches the dependent entities we need. Since this will be seldom
 19  
  * used I think the effort is unnecessary.
 20  
  * 
 21  
  * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
 22  
  * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
 23  
  * @created 2007/06/01
 24  
  */
 25  0
 public class DEMManagerImpl implements IDEMManager {
 26  
 
 27  
     // TODO: Try to see if one should cache the lists of entities so not to search all of them for ownership
 28  
 
 29  
     /**
 30  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getApplication(java.lang.String)
 31  
      */
 32  
     public IApplication getApplication(String applicationID)
 33  
     {
 34  0
         return DEMRegistryImpl.getRegistry().getApplication(applicationID.toLowerCase());
 35  
     }
 36  
 
 37  
     /**
 38  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getApplications(pt.digitalis.dif.dem.interfaces.IProvider)
 39  
      */
 40  
     public Map<String, IApplication> getApplications(IProvider provider)
 41  
     {
 42  0
         Map<String, IApplication> providerApplications = new HashMap<String, IApplication>();
 43  
 
 44  0
         for (IApplication application: DEMRegistryImpl.getApplications().values())
 45  
         {
 46  
             // Prevent NPE in case an inexistent provider is referred
 47  0
             if (application.getProvider() != null && application.getProvider().getID().equals(provider.getID()))
 48  0
                 providerApplications.put(application.getID(), application);
 49  
         }
 50  
 
 51  0
         return providerApplications;
 52  
     }
 53  
 
 54  
     /**
 55  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getDefaultProvider()
 56  
      */
 57  
     public IProvider getDefaultProvider()
 58  
     {
 59  0
         return DEMRegistryImpl.getDefaultProvider();
 60  
     }
 61  
 
 62  
     /**
 63  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getEntity(pt.digitalis.dif.dem.Entity, java.lang.String)
 64  
      */
 65  
     public IEntity getEntity(Entity type, String entityID)
 66  
     {
 67  0
         if (Entity.PROVIDER.equals(type))
 68  0
             return getProvider(entityID);
 69  
 
 70  0
         else if (Entity.APPLICATION.equals(type))
 71  0
             return getApplication(entityID);
 72  
 
 73  0
         else if (Entity.SERVICE.equals(type))
 74  0
             return getService(entityID);
 75  
 
 76  0
         else if (Entity.STAGE.equals(type))
 77  0
             return getStage(entityID);
 78  
 
 79  
         else
 80  0
             return null;
 81  
 
 82  
         // if (Entity.PROVIDER.equals(type))
 83  
         // return getProvider(entityID);
 84  
         //
 85  
         // else if (Entity.APPLICATION.equals(type))
 86  
         // return getApplication(entityID);
 87  
         //
 88  
         // else if (Entity.SERVICE.equals(type))
 89  
         // return getService(entityID);
 90  
         //
 91  
         // else if (Entity.STAGE.equals(type))
 92  
         // return getStage(entityID);
 93  
         //
 94  
         // else
 95  
         // return null;
 96  
     }
 97  
 
 98  
     /**
 99  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getProvider(java.lang.String)
 100  
      */
 101  
     public IProvider getProvider(String providerID)
 102  
     {
 103  0
         return DEMRegistryImpl.getRegistry().getProvider(providerID.toLowerCase());
 104  
     }
 105  
 
 106  
     /**
 107  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getProviders()
 108  
      */
 109  
     public Map<String, IProvider> getProviders()
 110  
     {
 111  0
         return DEMRegistryImpl.getProviders();
 112  
     }
 113  
 
 114  
     /**
 115  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getService(java.lang.String)
 116  
      */
 117  
     public IService getService(String serviceID)
 118  
     {
 119  0
         return DEMRegistryImpl.getRegistry().getService(serviceID.toLowerCase());
 120  
     }
 121  
 
 122  
     /**
 123  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getServices(pt.digitalis.dif.dem.interfaces.IApplication)
 124  
      */
 125  
     public Map<String, IService> getServices(IApplication application)
 126  
     {
 127  0
         Map<String, IService> applicationServices = new HashMap<String, IService>();
 128  
 
 129  0
         for (IService service: DEMRegistryImpl.getServices().values())
 130  
         {
 131  
             // Prevent NPE in case an inexistent application is referred
 132  0
             if (service.getApplication() != null && service.getApplication().getID().equals(application.getID()))
 133  0
                 applicationServices.put(service.getID(), service);
 134  
         }
 135  
 
 136  0
         return applicationServices;
 137  
     }
 138  
 
 139  
     /**
 140  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getStage(java.lang.String)
 141  
      */
 142  
     public IStage getStage(String stageID)
 143  
     {
 144  0
         return DEMRegistryImpl.getRegistry().getStage(stageID.toLowerCase());
 145  
     }
 146  
 
 147  
     /**
 148  
      * @see pt.digitalis.dif.dem.managers.IDEMManager#getStages(pt.digitalis.dif.dem.interfaces.IService)
 149  
      */
 150  
     public Map<String, IStage> getStages(IService service)
 151  
     {
 152  0
         Map<String, IStage> serviceStages = new HashMap<String, IStage>();
 153  
 
 154  0
         for (IStage stage: DEMRegistryImpl.getStages().values())
 155  
         {
 156  
             // Prevent NPE in case an inexistent service is referred
 157  0
             if (stage.getService() != null && stage.getService().getID().equals(service.getID()))
 158  0
                 serviceStages.put(stage.getID(), stage);
 159  
         }
 160  
 
 161  0
         return serviceStages;
 162  
     }
 163  
 }