/**
 * This code was automatically generated at 2:59:53 PM on Mar 11, 2003
 * by weblogic.xml.schema.binding.internal.codegen.BeanCodecGenerator -- do not edit.
 *
 * @version WebLogic Server 8.1  Mon Mar 10 22:42:52 PST 2003 244471 
 * @author Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
 */

package tutorial.sample25;

// original type: ['http://soapinterop.org/xsd']:SOAPStruct


public final class SOAPStructCodec 
  extends weblogic.xml.schema.binding.BeanCodecBase
{

  private static final int _SUPER_PROP_COUNT = 0;

  private static final weblogic.xml.stream.XMLName XML_TYPE = 
     weblogic.xml.stream.ElementFactory.createXMLName( "http://soapinterop.org/xsd" , "SOAPStruct" );

  private static final java.lang.String JAVA_TYPE = 
     "tutorial.sample25.SOAPStruct";



  private static final weblogic.xml.schema.binding.util.runtime.PropertyInfo[] PROPS = 
  {
  //package name = 
  //class   name = int
  //java    type = int
  //schema  name = ['http://soapinterop.org/xsd']:varInt
  //schema  type = ['http://www.w3.org/2001/XMLSchema']:int
  //array: false primitive: true  attribute: false  formQualified: false

  new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("http://soapinterop.org/xsd","varInt",null),
                                                            weblogic.xml.stream.ElementFactory.createXMLName("http://www.w3.org/2001/XMLSchema","int",null),
                                                            "varInt",
                                                            int.class,
                                                            false,
                                                            false),


  //package name = java.lang
  //class   name = String
  //java    type = java.lang.String
  //schema  name = ['http://soapinterop.org/xsd']:varString
  //schema  type = ['http://www.w3.org/2001/XMLSchema']:string
  //array: false primitive: false  attribute: false  formQualified: false

  new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("http://soapinterop.org/xsd","varString",null),
                                                            weblogic.xml.stream.ElementFactory.createXMLName("http://www.w3.org/2001/XMLSchema","string",null),
                                                            "varString",
                                                            java.lang.String.class,
                                                            false,
                                                            false),


  //package name = 
  //class   name = float
  //java    type = float
  //schema  name = ['http://soapinterop.org/xsd']:varFloat
  //schema  type = ['http://www.w3.org/2001/XMLSchema']:float
  //array: false primitive: true  attribute: false  formQualified: false

  new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("http://soapinterop.org/xsd","varFloat",null),
                                                            weblogic.xml.stream.ElementFactory.createXMLName("http://www.w3.org/2001/XMLSchema","float",null),
                                                            "varFloat",
                                                            float.class,
                                                            false,
                                                            false),



  };




  protected Object createObject() {
    return new tutorial.sample25.SOAPStruct();
  }

  protected weblogic.xml.stream.XMLName getXmlType() {
    return XML_TYPE;
  }

  protected Object invokeGetter(Object my_obj, int idx) {

    tutorial.sample25.SOAPStruct typed_obj = (tutorial.sample25.SOAPStruct) my_obj;
    return typedInvokeGetter(typed_obj, idx);
  }

  protected void invokeSetter(Object my_obj, int idx,
                              Object setter_arg)
  {

    tutorial.sample25.SOAPStruct typed_obj = (tutorial.sample25.SOAPStruct) my_obj;
    typedInvokeSetter(typed_obj, idx, setter_arg);
  }

  public int getPropertyCount()
  {
    return (_SUPER_PROP_COUNT + PROPS.length);
  }

  public weblogic.xml.schema.binding.util.runtime.PropertyInfo getPropertyInfo(int idx)
  {

    return PROPS[idx];
  }


  private static Object typedInvokeGetter(tutorial.sample25.SOAPStruct my_obj, 
                                          int idx) 
  {
    Object obj;

    switch(idx) {

    case 0:
      obj = new java.lang.Integer(my_obj.getVarInt());
      break;
    case 1:
      obj = my_obj.getVarString();
      break;
    case 2:
      obj = new java.lang.Float(my_obj.getVarFloat());
      break;


    default:
      throw new java.lang.NoSuchFieldError("impossible case: " + idx);
    }

    return obj;

  }


  private static void typedInvokeSetter(tutorial.sample25.SOAPStruct my_obj, 
                                        int idx,
                                        Object setter_arg) 
  {
    switch(idx) {

    case 0:
      my_obj.setVarInt(((java.lang.Number)setter_arg).intValue());
      break;
    case 1:
      my_obj.setVarString((java.lang.String)setter_arg);
      break;
    case 2:
      my_obj.setVarFloat(((java.lang.Number)setter_arg).floatValue());
      break;


    default:
      throw new java.lang.NoSuchFieldError("impossible case: " + idx);
    }

  }

  protected weblogic.xml.schema.binding.ModelGroupCompositor getCompositor() {
    return weblogic.xml.schema.binding.ModelGroupCompositor.SEQUENCE ;
  }



  







}

