jochen      2005/04/19 13:11:04

  Modified:    src/jaxme/org/apache/ws/jaxme/examples/misc/address Tag:
                        v0_4 AddressCreator.java
               src/jaxme/org/apache/ws/jaxme/generator/sg/impl Tag: v0_4
                        JAXBSchemaSG.java
               .        Tag: v0_4 status.xml
  Log:
  Fixed that the object factory methods didn't work for inner classes.
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.4.2.1   +51 -55    
ws-jaxme/src/jaxme/org/apache/ws/jaxme/examples/misc/address/AddressCreator.java
  
  Index: AddressCreator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-jaxme/src/jaxme/org/apache/ws/jaxme/examples/misc/address/AddressCreator.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- AddressCreator.java       26 Aug 2004 22:41:25 -0000      1.4
  +++ AddressCreator.java       19 Apr 2005 20:11:04 -0000      1.4.2.1
  @@ -26,64 +26,60 @@
   
   import org.apache.ws.jaxme.impl.JMMarshallerImpl;
   import org.apache.ws.jaxme.test.misc.address.Address;
  +import org.apache.ws.jaxme.test.misc.address.ObjectFactory;
   import 
org.apache.ws.jaxme.test.misc.address.AddressType.EmailDetailsType.EmailType;
   import 
org.apache.ws.jaxme.test.misc.address.AddressType.PhoneDetailsType.PhoneType;
  -import org.apache.ws.jaxme.test.misc.address.impl.AddressImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.NameTypeImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.PostalTypeImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.EmailDetailsTypeImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.EmailDetailsTypeImpl.EmailTypeImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.PhoneDetailsTypeImpl;
  -import 
org.apache.ws.jaxme.test.misc.address.impl.AddressTypeImpl.PhoneDetailsTypeImpl.PhoneTypeImpl;
   
   
   public class AddressCreator {
  -  public static void writeAddress(Writer pWriter) throws JAXBException {
  -    // Create the element:
  -    Address addr = new AddressImpl();
  -    addr.setName(new NameTypeImpl());
  -    addr.getName().setFirst("Jane");
  -    addr.getName().setLast("Doe");
  -    addr.setPostal(new PostalTypeImpl());
  -    addr.getPostal().setStreet("34 Main Street");
  -    addr.getPostal().setCity("Boston");
  -    addr.getPostal().setState("MA");
  -    addr.getPostal().setZIP("02215");
  -    addr.setEmailDetails(new EmailDetailsTypeImpl());
  -
  -    EmailType email = new EmailTypeImpl();
  -    email.setType("Private");
  -    email.setEmailAddress("[EMAIL PROTECTED]");
  -    addr.getEmailDetails().getEmail().add(email);
  -    email = new EmailTypeImpl();
  -    email.setType("Office");
  -    email.setEmailAddress("[EMAIL PROTECTED]");
  -    addr.getEmailDetails().getEmail().add(email);
  -    email = new EmailTypeImpl();
  -    email.setType("Office");
  -    email.setEmailAddress("[EMAIL PROTECTED]");
  -    addr.getEmailDetails().getEmail().add(email);
  -
  -    addr.setPhoneDetails(new PhoneDetailsTypeImpl());
  -    PhoneType phone = new PhoneTypeImpl();
  -    phone.setType("Work");
  -    phone.setPhoneNumber("555.6789");
  -    addr.getPhoneDetails().getPhone().add(phone);
  -    phone = new PhoneTypeImpl();
  -    phone.setType("Fax");
  -    phone.setPhoneNumber("555.1212");
  -    addr.getPhoneDetails().getPhone().add(phone);
  -
  -    // And save it into the file "Address.xml"
  -    JAXBContext context = 
JAXBContext.newInstance("org.apache.ws.jaxme.test.misc.address");
  -    Marshaller marshaller = context.createMarshaller();
  -    marshaller.setProperty(JMMarshallerImpl.JAXME_XML_DECLARATION, 
Boolean.FALSE);
  -    marshaller.marshal(addr, pWriter);
  -  }
  -
  -  public static void main(String[] args) throws Exception {
  -    FileWriter fw = new FileWriter("Address.xml");
  -    writeAddress(fw);
  -    fw.close();
  -  }
  +     public static void writeAddress(Writer pWriter) throws JAXBException {
  +             ObjectFactory f = new ObjectFactory();
  +             
  +             // Create the element:
  +             Address addr = f.createAddress();
  +             addr.setName(f.createAddressTypeNameType());
  +             addr.getName().setFirst("Jane");
  +             addr.getName().setLast("Doe");
  +             addr.setPostal(f.createAddressTypePostalType());
  +             addr.getPostal().setStreet("34 Main Street");
  +             addr.getPostal().setCity("Boston");
  +             addr.getPostal().setState("MA");
  +             addr.getPostal().setZIP("02215");
  +             addr.setEmailDetails(f.createAddressTypeEmailDetailsType());
  +             
  +             EmailType email = 
f.createAddressTypeEmailDetailsTypeEmailType();
  +             email.setType("Private");
  +             email.setEmailAddress("[EMAIL PROTECTED]");
  +             addr.getEmailDetails().getEmail().add(email);
  +             email = f.createAddressTypeEmailDetailsTypeEmailType();
  +             email.setType("Office");
  +             email.setEmailAddress("[EMAIL PROTECTED]");
  +             addr.getEmailDetails().getEmail().add(email);
  +             email = f.createAddressTypeEmailDetailsTypeEmailType();
  +             email.setType("Office");
  +             email.setEmailAddress("[EMAIL PROTECTED]");
  +             addr.getEmailDetails().getEmail().add(email);
  +             
  +             addr.setPhoneDetails(f.createAddressTypePhoneDetailsType());
  +             PhoneType phone = 
f.createAddressTypePhoneDetailsTypePhoneType();
  +             phone.setType("Work");
  +             phone.setPhoneNumber("555.6789");
  +             addr.getPhoneDetails().getPhone().add(phone);
  +             phone = f.createAddressTypePhoneDetailsTypePhoneType();
  +             phone.setType("Fax");
  +             phone.setPhoneNumber("555.1212");
  +             addr.getPhoneDetails().getPhone().add(phone);
  +             
  +             // And save it into the file "Address.xml"
  +             JAXBContext context = 
JAXBContext.newInstance("org.apache.ws.jaxme.test.misc.address");
  +             Marshaller marshaller = context.createMarshaller();
  +             marshaller.setProperty(JMMarshallerImpl.JAXME_XML_DECLARATION, 
Boolean.FALSE);
  +             marshaller.marshal(addr, pWriter);
  +     }
  +     
  +     public static void main(String[] args) throws Exception {
  +             FileWriter fw = new FileWriter("Address.xml");
  +             writeAddress(fw);
  +             fw.close();
  +     }
   }
  
  
  
  No                   revision
  No                   revision
  1.15.2.1  +7 -2      
ws-jaxme/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
  
  Index: JAXBSchemaSG.java
  ===================================================================
  RCS file: 
/home/cvs/ws-jaxme/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java,v
  retrieving revision 1.15
  retrieving revision 1.15.2.1
  diff -u -r1.15 -r1.15.2.1
  --- JAXBSchemaSG.java 9 Apr 2005 00:42:43 -0000       1.15
  +++ JAXBSchemaSG.java 19 Apr 2005 20:11:04 -0000      1.15.2.1
  @@ -579,13 +579,18 @@
       JavaQName resultName = pContext.getXMLInterfaceName();
       String className = resultName.isInnerClass() ? 
resultName.getInnerClassName() : resultName.getClassName();
        String result = Character.toUpperCase(className.charAt(0)) + 
className.substring(1);
  -     if (pPrefix != null) {
  +     boolean anonymous = pPrefix != null;
  +     if (anonymous) {
                result = pPrefix + result;
        }
       String methodName = "create" + result;
       JavaMethod createMethod = pSource.newJavaMethod(methodName, resultName, 
"public");
       createMethod.addThrows(JAXBException.class);
  -    createMethod.addLine("return (", resultName, ") newInstance(", 
resultName, ".class);");
  +     if (anonymous) {
  +             createMethod.addLine("return new ", 
pContext.getXMLImplementationName(), "();");
  +     } else {
  +             createMethod.addLine("return (", resultName, ") newInstance(", 
resultName, ".class);");
  +     }
        return result;
     }
   }
  
  
  
  No                   revision
  No                   revision
  1.45.2.1  +11 -0     ws-jaxme/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/ws-jaxme/status.xml,v
  retrieving revision 1.45
  retrieving revision 1.45.2.1
  diff -u -r1.45 -r1.45.2.1
  --- status.xml        12 Apr 2005 08:17:17 -0000      1.45
  +++ status.xml        19 Apr 2005 20:11:04 -0000      1.45.2.1
  @@ -29,6 +29,17 @@
     </todo>
   
     <changes>
  +    <release version="0.4" date="Not yet published">
  +      <action dev="JW" type="fix" context="generator">
  +        Fixed that the object factory methods didn't work for
  +        inner classes.
  +      </action>
  +      <action dev="JW" type="fix" context="generator">
  +        Fixed a "Not implemented" IllegalStateException in the
  +        UnmarshallerHandlerImpl, which caused unmarshalling of
  +        nested groups to fail in some cases.
  +      </action>
  +    </release>
       <release version="0.4beta" date="2005-Apr-17">
         <action dev="JW" type="enhancement" context="generator">
           The ObjectFactory does now contain methods for creating
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to