Coverage Report - pt.digitalis.dif.codegen.util.EntityUtils
 
Classes in this File Line Coverage Branch Coverage Complexity
EntityUtils
0%
0/27
0%
0/20
8,5
 
 1  0
 /** 2007, Digitalis Informatica. All rights reserved.
 2  
  * 
 3  
  * Distribuicao e Gestao de Informatica, Lda.
 4  
  * Estrada de Paco de Arcos num.9 - Piso -1
 5  
  * 2780-666 Paco de Arcos
 6  
  * Telefone: (351) 21 4408990
 7  
  * Fax: (351) 21 4408999
 8  
  * http://www.digitalis.pt 
 9  
  */
 10  
 
 11  
 package pt.digitalis.dif.codegen.util;
 12  
 
 13  
 import pt.digitalis.dif.dem.Entity;
 14  
 import pt.digitalis.dif.dem.annotations.AnnotationMemberTags;
 15  
 import pt.digitalis.dif.dem.annotations.AnnotationTags;
 16  
 import pt.digitalis.dif.dem.annotations.entities.ApplicationDefinition;
 17  
 import pt.digitalis.dif.dem.annotations.entities.ProviderDefinition;
 18  
 import pt.digitalis.dif.dem.annotations.entities.ServiceDefinition;
 19  
 import pt.digitalis.dif.dem.annotations.entities.StageDefinition;
 20  
 import pt.digitalis.utils.CodeGenUtils;
 21  
 import pt.digitalis.utils.bytecode.holders.AnnotationHolder;
 22  
 import pt.digitalis.utils.bytecode.holders.ClassHolder;
 23  
 import pt.digitalis.utils.inspection.exception.ResourceNotFoundException;
 24  
 
 25  
 /**
 26  
  * A set of entity-inspection utilities.
 27  
  * 
 28  
  * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a><br/>
 29  
  * @created 2007/11/07
 30  
  */
 31  0
 final public class EntityUtils {
 32  
 
 33  
     /**
 34  
      * Returns the type of the entity type of the passed argument.
 35  
      * 
 36  
      * @param clazz
 37  
      *            the DEM object
 38  
      * @return the entity type of the class passed as argument
 39  
      * @throws ResourceNotFoundException
 40  
      *             if annotations can't be read
 41  
      */
 42  
     static public Entity getEntityType(ClassHolder clazz) throws ResourceNotFoundException {
 43  0
         if (clazz.containsAnnotation(ProviderDefinition.class.getCanonicalName())) {
 44  0
             return Entity.PROVIDER;
 45  0
         } else if (clazz.containsAnnotation(ApplicationDefinition.class.getCanonicalName())) {
 46  0
             return Entity.APPLICATION;
 47  0
         } else if (clazz.containsAnnotation(ServiceDefinition.class.getCanonicalName())) {
 48  0
             return Entity.SERVICE;
 49  0
         } else if (clazz.containsAnnotation(StageDefinition.class.getCanonicalName())) {
 50  0
             return Entity.STAGE;
 51  
         }
 52  
 
 53  0
         return null;
 54  
     }
 55  
 
 56  
     /**
 57  
      * Returns the ID of a given entity.
 58  
      * 
 59  
      * @param clazz
 60  
      *            the DEM object
 61  
      * @return the id of the supplied entity
 62  
      * @throws ResourceNotFoundException
 63  
      *             if the annotations can't be read
 64  
      */
 65  
     static public String getEntityID(ClassHolder clazz) throws ResourceNotFoundException {
 66  0
         String entityID = null;
 67  
 
 68  0
         AnnotationHolder annotation = null;
 69  
 
 70  0
         if (clazz.containsAnnotation(ProviderDefinition.class.getCanonicalName()))
 71  0
             annotation = clazz.getAnnotations().get(ProviderDefinition.class.getCanonicalName());
 72  
 
 73  0
         else if (clazz.containsAnnotation(ApplicationDefinition.class.getCanonicalName()))
 74  0
             annotation = clazz.getAnnotations().get(ApplicationDefinition.class.getCanonicalName());
 75  
 
 76  0
         else if (clazz.containsAnnotation(ServiceDefinition.class.getCanonicalName()))
 77  0
             annotation = clazz.getAnnotations().get(ServiceDefinition.class.getCanonicalName());
 78  
 
 79  0
         else if (clazz.containsAnnotation(StageDefinition.class.getCanonicalName()))
 80  0
             annotation = clazz.getAnnotations().get(StageDefinition.class.getCanonicalName());
 81  
 
 82  0
         if (annotation == null)
 83  0
             return null;
 84  
 
 85  
         else {
 86  0
             entityID = annotation.getMembers().get(AnnotationMemberTags.ENTITY_DEFINITION_ID).toString();
 87  
 
 88  
             // Check if id generation is needed...
 89  0
             if (AnnotationTags.GENERATE_ID.equals(entityID))
 90  0
                 entityID = CodeGenUtils.generateID(clazz.getName());
 91  
 
 92  0
             return entityID.toLowerCase();
 93  
         }
 94  
     }
 95  
 }