Coverage Report - uk.co.badgersinfoil.asxsd.TypeStore
 
Classes in this File Line Coverage Branch Coverage Complexity
TypeStore
0% 
0% 
4.6
 
 1  
 package uk.co.badgersinfoil.asxsd;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.Map;
 5  
 import org.eclipse.xsd.XSDConcreteComponent;
 6  
 
 7  0
 public class TypeStore {
 8  0
         private Map store = new HashMap();
 9  
         
 10  
         public TypeDescriptor get(CodegenRole role,
 11  
                                 XSDConcreteComponent component)
 12  
         {
 13  0
                 Key key = new Key(role, component);
 14  0
                 return (TypeDescriptor)store.get(key);
 15  
         }
 16  
 
 17  
         public void put(CodegenRole role,
 18  
                         XSDConcreteComponent component,
 19  
                         TypeDescriptor typeDesc)
 20  
         {
 21  0
                 Key key = new Key(role, component);
 22  0
                 if (store.containsKey(key)) {
 23  0
                         throw new IllegalArgumentException("Function already defined for "+role+"+"+component);
 24  
                 }
 25  0
                 store.put(key, typeDesc);
 26  0
         }
 27  
 
 28  0
         private static class Key {
 29  
                 private CodegenRole role;
 30  
                 private XSDConcreteComponent component;
 31  0
                 public Key(CodegenRole role, XSDConcreteComponent component) {
 32  0
                         this.role = role;
 33  0
                         this.component = component;
 34  0
                 }
 35  
                 public int hashCode() {
 36  0
                         final int PRIME = 31;
 37  0
                         int result = 1;
 38  0
                         result = PRIME * result + ((component == null) ? 0 : component.hashCode());
 39  0
                         result = PRIME * result + ((role == null) ? 0 : role.hashCode());
 40  0
                         return result;
 41  
                 }
 42  
                 public boolean equals(Object obj) {
 43  0
                         if (this == obj)
 44  0
                                 return true;
 45  0
                         if (obj == null)
 46  0
                                 return false;
 47  0
                         if (getClass() != obj.getClass())
 48  0
                                 return false;
 49  0
                         final Key other = (Key) obj;
 50  0
                         if (component == null) {
 51  0
                                 if (other.component != null)
 52  0
                                         return false;
 53  0
                         } else if (!component.equals(other.component))
 54  0
                                 return false;
 55  0
                         if (role == null) {
 56  0
                                 if (other.role != null)
 57  0
                                         return false;
 58  0
                         } else if (!role.equals(other.role))
 59  0
                                 return false;
 60  0
                         return true;
 61  
                 }
 62  
         }
 63  
 }