Coverage Report - uk.co.badgersinfoil.asxsd.components.FloatSimpleTypeComponent
 
Classes in this File Line Coverage Branch Coverage Complexity
FloatSimpleTypeComponent
93% 
100% 
1.667
 
 1  
 /*
 2  
  * Copyright (c) 2007 David Holroyd
 3  
  */
 4  
 
 5  
 package uk.co.badgersinfoil.asxsd.components;
 6  
 
 7  
 import org.eclipse.xsd.XSDConcreteComponent;
 8  
 import org.eclipse.xsd.XSDSimpleTypeDefinition;
 9  
 import org.eclipse.xsd.XSDVariety;
 10  
 import uk.co.badgersinfoil.asxsd.CodegenContext;
 11  
 import uk.co.badgersinfoil.asxsd.CodegenRole;
 12  
 import uk.co.badgersinfoil.asxsd.TypeDescriptor;
 13  
 import uk.co.badgersinfoil.metaas.dom.ASConstants;
 14  
 import uk.co.badgersinfoil.metaas.dom.StatementContainer;
 15  
 
 16  15
 public class FloatSimpleTypeComponent extends AbstractSimpleTypeComponent {
 17  
 
 18  
         protected TypeDescriptor createTypeDescriptor(CodegenContext context,
 19  
                                                       XSDSimpleTypeDefinition simpleType)
 20  
         {
 21  1
                 return new TypeDescriptor(ASConstants.TYPE_NUMBER, false, null, simpleType);
 22  
         }
 23  
 
 24  
         public void generateCode(CodegenContext context, XSDConcreteComponent component) {
 25  2
                 CodegenRole role = context.getCurrentRole();
 26  2
                 if (role == CodegenRole.UNMARSHAL) {
 27  1
                         StatementContainer code = context.getCurrentMethodCode();
 28  1
                         String expr = "thisValue";
 29  
                         // TODO: handle "INF" "-INF" "NaN" exponential format?
 30  1
                         code.addStmt("return Number("+expr+")");
 31  1
                 } else if (role == CodegenRole.MARSHAL) {
 32  1
                         StatementContainer code = context.getCurrentMethodCode();
 33  1
                         String expr = "thisValue";
 34  
                         // TODO: handle "INF" "-INF" "NaN" exponential format?
 35  1
                         code.addStmt("return String("+expr+")");
 36  1
                 } else {
 37  0
                         super.generateCode(context, component);
 38  
                 }
 39  2
         }
 40  
 
 41  
         protected boolean willAcceptType(XSDSimpleTypeDefinition simpleType) {
 42  1126
                 return simpleType.getVariety() == XSDVariety.ATOMIC_LITERAL
 43  
                     && "float".equals(simpleType.getName())
 44  
                     && "http://www.w3.org/2001/XMLSchema".equals(simpleType.getTargetNamespace());
 45  
         }
 46  
 }