/* * * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistribution in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * This software is provided "AS IS," without a warranty of any * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that this software is not designed, licensed or * intended for use in the design, construction, operation or * maintenance of any nuclear facility. * */ import java.math.BigDecimal; import java.math.BigInteger; import java.util.Calendar; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; // import java content classes generated by binding compiler import primer.po.*; /* * $Id: Main.java,v 1.3 2002/09/24 18:07:12 ryans Exp $ * * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. * * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * */ public class Main { // This sample application demonstrates how to use the ObjectFactory // class to create a java content tree from scratch and marshal it // to XML data public static void main( String[] args ) { try { // create a JAXBContext JAXBContext jc = JAXBContext.newInstance( "primer.po" ); // create an empty PurchaseOrder PurchaseOrder po = ObjectFactory.createPurchaseOrder(); // set the required orderDate attribute po.setOrderDate( Calendar.getInstance() ); // create shipTo USAddress object USAddress shipTo = createUSAddress( "Alice Smith", "123 Maple Street", "Cambridge", "MA", "12345" ); // set the required shipTo address po.setShipTo( shipTo ); // create billTo USAddress object USAddress billTo = createUSAddress( "Robert Smith", "8 Oak Avenue", "Cambridge", "MA", "12345" ); // set the requred billTo address po.setBillTo( billTo ); // create an empty Items object Items items = ObjectFactory.createItems(); // get a reference to the ItemType list List itemList = items.getItem(); // start adding ItemType objects into it itemList.add( createItemType( "Nosferatu - Special Edition (1929)", new BigInteger( "5" ), new BigDecimal( "19.99" ), null, null, "242-NO" ) ); itemList.add( createItemType( "The Mummy (1959)", new BigInteger( "3" ), new BigDecimal( "19.98" ), null, null, "242-MU" ) ); itemList.add( createItemType( "Godzilla and Mothra: Battle for Earth/Godzilla vs. King Ghidora", new BigInteger( "3" ), new BigDecimal( "27.95" ), null, null, "242-GZ" ) ); // set the required Items list po.setItems( items ); // create a Marshaller and marshal to System.out Marshaller m = jc.createMarshaller(); m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE ); m.marshal( po, System.out ); } catch( JAXBException je ) { je.printStackTrace(); } } public static USAddress createUSAddress( String name, String street, String city, String state, String zip ) throws JAXBException { // create an empty USAddress objects USAddress address = ObjectFactory.createUSAddress(); // set properties on it address.setName( name ); address.setStreet( street ); address.setCity( city ); address.setState( state ); address.setZip( new BigDecimal( zip ) ); // return it return address; } public static Items.ItemType createItemType( String productName, BigInteger quantity, BigDecimal price, Comment comment, Calendar shipDate, String partNum ) throws JAXBException { // create an empty ItemType object Items.ItemType itemType = ObjectFactory.createItemsItemType(); // set properties on it itemType.setProductName( productName ); itemType.setQuantity( quantity ); itemType.setUSPrice( price ); itemType.setComment( comment ); itemType.setShipDate( shipDate ); itemType.setPartNum( partNum ); // return it return itemType; } }