Coverage Report - uk.co.badgersinfoil.asxsd.components.BooleanSimpleTypeComponent
 
Classes in this File Line Coverage Branch Coverage Complexity
BooleanSimpleTypeComponent
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.StatementContainer;
 14  
 
 15  
 
 16  16
 public class BooleanSimpleTypeComponent extends AbstractSimpleTypeComponent {
 17  
 
 18  
         protected TypeDescriptor createTypeDescriptor(CodegenContext context, XSDSimpleTypeDefinition simpleType) {
 19  1
                 return new TypeDescriptor("Boolean", false, null, simpleType);
 20  
         }
 21  
 
 22  
         protected boolean willAcceptType(XSDSimpleTypeDefinition simpleType) {
 23  707
                 return simpleType.getVariety() == XSDVariety.ATOMIC_LITERAL
 24  
                     && "boolean".equals(simpleType.getName())
 25  
                     && "http://www.w3.org/2001/XMLSchema".equals(simpleType.getTargetNamespace());
 26  
         }
 27  
 
 28  
         public void generateCode(CodegenContext context, XSDConcreteComponent component) {
 29  2
                 CodegenRole role = context.getCurrentRole();
 30  2
                 if (role == CodegenRole.UNMARSHAL) {
 31  1
                         StatementContainer code = context.getCurrentMethodCode();
 32  1
                         String expr = "thisValue";
 33  
                         // TODO: handle "1" "0"  http://www.w3.org/TR/xmlschema-2/#boolean
 34  1
                         code.addStmt("return Boolean("+expr+")");
 35  1
                 } else if (role == CodegenRole.MARSHAL) {
 36  1
                         StatementContainer code = context.getCurrentMethodCode();
 37  1
                         String expr = "thisValue";
 38  1
                         code.addStmt("return String("+expr+")");
 39  1
                 } else {
 40  0
                         super.generateCode(context, component);
 41  
                 }
 42  2
         }
 43  
 }