?? typetest.java
字號:
package org.codehaus.xfire.aegis.type.basic;import java.io.ByteArrayOutputStream;import java.io.StringReader;import javax.xml.namespace.QName;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.XMLStreamWriter;import org.codehaus.xfire.MessageContext;import org.codehaus.xfire.aegis.stax.ElementReader;import org.codehaus.xfire.aegis.stax.ElementWriter;import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry;import org.codehaus.xfire.aegis.type.TypeMapping;import org.codehaus.xfire.aegis.type.TypeMappingRegistry;import org.codehaus.xfire.test.AbstractXFireTest;import org.codehaus.xfire.util.STAXUtils;import org.jdom.Document;import org.jdom.Element;/** * TypeTest * * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> */public class TypeTest extends AbstractXFireTest{ public void testBeanType() throws Exception { // XMLOutputFactory ofactory = XMLOutputFactory.newInstance(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); // XMLStreamWriter writer = ofactory.createXMLStreamWriter(bos); XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(bos, null, null); TypeMappingRegistry tmr = new DefaultTypeMappingRegistry(true); TypeMapping tm = tmr.createTypeMapping(true); SimpleBean bean = new SimpleBean(); bean.setBleh("bleh"); bean.setHowdy("howdy"); registerSimpleBeanType(tm); BeanType bt = (BeanType) tm.getType(SimpleBean.class); ElementWriter lwriter = new ElementWriter(writer, "SimpleBean", "urn:Bean"); bt.writeObject(bean, lwriter, new MessageContext()); lwriter.close(); writer.close(); System.out.println(bos.toString()); // XMLInputFactory factory = XMLInputFactory.newInstance(); // XMLStreamReader reader = factory.createXMLStreamReader( new // StringReader(bos.toString()) ); XMLStreamReader reader = STAXUtils.createXMLStreamReader(new StringReader(bos.toString())); while (reader.getEventType() != XMLStreamReader.START_ELEMENT) reader.next(); SimpleBean readBean = (SimpleBean) bt.readObject(new ElementReader(reader), new MessageContext()); assertNotNull(readBean); assertEquals("bleh", readBean.getBleh()); assertEquals("howdy", readBean.getHowdy()); Element root = new Element("root"); Element schema = new Element("schema"); root.addContent(schema); Document doc = new Document(root); bt.writeSchema(schema); // TODO: run XPath tests on Schema } /** * @param tmr * @return */ private void registerSimpleBeanType(TypeMapping tmr) { tmr.register(SimpleBean.class, new QName("urn:SimpleBean", "SimpleBean"), new BeanType()); } private void registerArrayType(TypeMapping tmr) { tmr.register(SimpleBean[].class, new QName("urn:SomeBean", "ArrayOfSimpleBean"), new ArrayType()); } public void testArrayType() throws Exception { // XMLOutputFactory ofactory = XMLOutputFactory.newInstance(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); // XMLStreamWriter writer = ofactory.createXMLStreamWriter(bos); XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(bos, null, null); TypeMappingRegistry tmr = new DefaultTypeMappingRegistry(true); TypeMapping tm = tmr.createTypeMapping(true); registerSimpleBeanType(tm); registerArrayType(tm); SimpleBean bean = new SimpleBean(); bean.setBleh("bleh"); bean.setHowdy("howdy"); SimpleBean[] beanArray = new SimpleBean[] { bean, bean }; ArrayType at = (ArrayType) tm.getType(SimpleBean[].class); at.writeObject(beanArray, new ElementWriter(writer, "SimpleBean", "urn:Bean"), new MessageContext()); writer.close(); /* * TODO: figure out why this doesn't work. It works when you're actually * reading/writing documents. I think it has something to do with the * reader.next() in the END_ELEMENT case in LiteralReader. * * XMLInputFactory factory = XMLInputFactory.newInstance(); * XMLStreamReader reader = factory.createXMLStreamReader( new * StringReader(bos.toString()) ); while ( reader.getEventType() != * XMLStreamReader.START_ELEMENT ) reader.next(); * * Object out1 = at.readObject( new LiteralReader( reader ) ); * * SimpleBean[] beans = (SimpleBean[]) out1; assertNotNull( beans ); * assertEquals( "bleh", beans[0].getBleh() ); assertEquals( "howdy", * beans[0].getHowdy() ); * * Document doc = DocumentHelper.createDocument(); Element root = * doc.addElement("root"); * * at.writeSchema( root ); */ // TODO: run XPath tests on Schema }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -