Committed. Thanks, Scott
On Sat, Dec 08, 2001 at 10:30:56AM +0000, robert burrell donkin wrote: > hi james > > here's some documentation patchs. > > - robert > > Index: betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java,v > retrieving revision 1.3 > diff -u -r1.3 ElementDescriptor.java > --- betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java >2001/08/23 14:25:57 1.3 > +++ betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java >2001/12/08 09:53:39 > @@ -14,26 +14,33 @@ > /** <p><code>ElementDescriptor</code> describes the XML elements > * to be created for a bean instance.</p> > * > + * <p> It contains <code>AttributeDescriptor</code>'s for all it's attributes > + * and <code>ElementDescriptor</code>'s for it's child elements. > + * > * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a> > * @version $Revision: 1.3 $ > */ > public class ElementDescriptor extends NodeDescriptor { > > + /** Descriptors for element attributes */ > private AttributeDescriptor[] attributeDescriptors; > + /** Descriptors for child elements */ > private ElementDescriptor[] elementDescriptors; > > /** the expression used to evaluate the new context of this node > * or null if the same context is to be used */ > private Expression contextExpression; > > - > + /** Base constructor */ > public ElementDescriptor() { > } > > + /** Creates a <code>ElementDescriptor</code> with no namespace URI or prefix */ > public ElementDescriptor(String localName) { > super( localName ); > } > > + /** Creates a <code>ElementDescriptor</code> with namespace URI and qualified >name */ > public ElementDescriptor(String localName, String qualifiedName, String uri) { > super(localName, qualifiedName, uri); > } > @@ -53,6 +60,7 @@ > return attributeDescriptors; > } > > + /** Set <code>AttributesDescriptors</code> for this element */ > public void setAttributeDescriptors(AttributeDescriptor[] attributeDescriptors) >{ > this.attributeDescriptors = attributeDescriptors; > } > @@ -61,7 +69,8 @@ > public ElementDescriptor[] getElementDescriptors() { > return elementDescriptors; > } > - > + > + /** Set descriptors for child element of this element */ > public void setElementDescriptors(ElementDescriptor[] elementDescriptors) { > this.elementDescriptors = elementDescriptors; > } > Index: betwixt/src/java/org/apache/commons/betwixt/AttributeDescriptor.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/AttributeDescriptor.java,v > retrieving revision 1.1 > diff -u -r1.1 AttributeDescriptor.java > --- betwixt/src/java/org/apache/commons/betwixt/AttributeDescriptor.java >2001/08/22 12:25:02 1.1 > +++ betwixt/src/java/org/apache/commons/betwixt/AttributeDescriptor.java >2001/12/08 09:53:13 > @@ -17,13 +17,16 @@ > */ > public class AttributeDescriptor extends NodeDescriptor { > > + /** Base constructor */ > public AttributeDescriptor() { > } > > + /** Creates a AttributeDescriptor with no namespace URI or prefix */ > public AttributeDescriptor(String localName) { > super( localName ); > } > > + /** Creates a AttributeDescriptor with namespace URI and qualified name */ > public AttributeDescriptor(String localName,String qualifiedName,String uri) { > super(localName, qualifiedName, uri); > } > Index: betwixt/src/java/org/apache/commons/betwixt/io/BeanWriter.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/io/BeanWriter.java,v > retrieving revision 1.6 > diff -u -r1.6 BeanWriter.java > --- betwixt/src/java/org/apache/commons/betwixt/io/BeanWriter.java 2001/08/23 >15:03:07 1.6 > +++ betwixt/src/java/org/apache/commons/betwixt/io/BeanWriter.java 2001/12/08 >09:55:21 > @@ -24,8 +24,23 @@ > import org.apache.commons.betwixt.expression.Context; > import org.apache.commons.betwixt.expression.Expression; > > -/** <p><code>BeanWriter</code> outputs a bean as XML.</p> > +/** <p><code>BeanWriter</code> output beans as XML.</p> > + * The output for each bean is an xml fragment > + * (rather than a well-formed xml-document). > + * This allows bean representations to be appended to a document > + * by writing each in turn to the stream. > + * So to create a well formed xml document, > + * you'll need to write the prolog to the stream first. > + * If you append more than one bean to the stream, > + * then you'll need to add a wrapping root element as well. > * > + * <p> The line ending to be used is set by {@link #setEndOfLine}. > + * > + * <p> The output can be formatted (with whitespace) for easy reading > + * by calling {@link #enablePrettyPrint}. > + * The output will be indented. > + * The indent string used is set by {@link #setIndent}. > + * > * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a> > * @version $Revision: 1.6 $ > */ > @@ -44,20 +59,39 @@ > /** should we flush after writing bean */ > private boolean autoFlush; > > + /** > + * <p> Constructor uses <code>System.out</code> for output.</p> > + */ > public BeanWriter() { > this( System.out ); > } > - > + > + /** > + * <p> Constuctor uses given <code>OutputStream</code> for output.</p> > + * > + * @param out write out representations to this stream > + */ > public BeanWriter(OutputStream out) { > this.writer = new BufferedWriter( new OutputStreamWriter( out ) ); > this.autoFlush = true; > } > > + /** > + * <p> Constructor sets writer used for output.</p> > + * > + * @param writer write out representations to this writer > + */ > public BeanWriter(Writer writer) { > this.writer = writer; > } > > - /** Writes the given bean to the current stream using the XML introspector */ > + /** > + * <p> Writes the given bean to the current stream using the XML >introspector.</p> > + * > + * <p> This writes an xml fragment representing the bean to the current >stream.</p> > + * > + * @param bean write out representation of this bean > + */ > public void write(Object bean) throws IOException, IntrospectionException { > XMLBeanInfo beanInfo = introspector.introspect( bean ); > if ( beanInfo != null ) { > @@ -73,6 +107,9 @@ > } > } > > + /** > + * <p> Switch on formatted output. > + */ > public void enablePrettyPrint() { > endOfLine = "\n"; > indent = " "; > @@ -102,6 +139,7 @@ > // Implementation methods > //------------------------------------------------------------------------- > > + /** Writes the given bean to the current stream using the given ><code>qualifiedName</code> */ > public void write(String qualifiedName, Object bean) throws IOException, >IntrospectionException { > XMLBeanInfo beanInfo = introspector.introspect( bean ); > if ( beanInfo != null ) { > @@ -115,6 +153,7 @@ > } > } > } > + > /** Writes the given element */ > protected void write( String qualifiedName, ElementDescriptor >elementDescriptor, Context context ) throws IOException, IntrospectionException { > writePrintln(); > @@ -217,12 +256,17 @@ > } > } > > + /** Writes out an empty line. > + * Uses current <code>endOfLine</code>. > + */ > protected void writePrintln() throws IOException { > if ( endOfLine != null ) { > writer.write( endOfLine ); > } > } > > + /** Writes out <code>indent</code>'s to the current <code>indentLevel</code> > + */ > protected void writeIndent() throws IOException { > if ( indent != null ) { > for ( int i = 0; i < indentLevel; i++ ) { > Index: betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java,v > retrieving revision 1.2 > diff -u -r1.2 NodeDescriptor.java > --- betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java 2001/08/22 >18:30:48 1.2 > +++ betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java 2001/12/08 >09:54:08 > @@ -11,9 +11,11 @@ > > import org.apache.commons.betwixt.expression.Expression; > > -/** <p><code>ElementDescriptor</code> describes the XML elements > - * to be created for a bean instance.</p> > +/** <p> Common superclass for <code>ElementDescriptor</code> and ><code>AttributeDescriptor</code>.</p> > * > + * <p> Nodes can have just a local name > + * or they can have a local name, qualified name and a namespace uri.</p> > + * > * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a> > * @version $Revision: 1.2 $ > */ > @@ -26,8 +28,8 @@ > private String uri; > /** the expression used to evaluate the text value of this node */ > private Expression textExpression; > - > > + /** Base constructor */ > public NodeDescriptor() { > } > > @@ -37,23 +39,27 @@ > this.qualifiedName = localName; > } > > + > + /** Creates a NodeDescriptor with namespace URI and qualified name */ > public NodeDescriptor(String localName, String qualifiedName, String uri) { > this.localName = localName; > this.qualifiedName = qualifiedName; > this.uri = uri; > } > > - /** Returns the local name of the element, excluding any namespace prefix > + /** Returns the local name, excluding any namespace prefix > */ > public String getLocalName() { > return localName; > } > > + /** Sets the local name > + */ > public void setLocalName(String localName) { > this.localName = localName; > } > > - /** Returns the qualified name of the element, including any namespace prefix > + /** Returns the qualified name, including any namespace prefix > */ > public String getQualifiedName() { > if ( qualifiedName == null ) { > @@ -61,7 +67,9 @@ > } > return qualifiedName; > } > - > + > + /** Sets the qualified name > + */ > public void setQualifiedName(String qualifiedName) { > this.qualifiedName = qualifiedName; > } > @@ -71,6 +79,9 @@ > return ( uri != null ) ? uri : ""; > } > > + > + /** Sets the namespace URI that this node belongs to. > + */ > public void setURI(String uri) { > this.uri = uri; > } > Index: betwixt/src/java/org/apache/commons/betwixt/XMLBeanInfo.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/XMLBeanInfo.java,v > retrieving revision 1.1 > diff -u -r1.1 XMLBeanInfo.java > --- betwixt/src/java/org/apache/commons/betwixt/XMLBeanInfo.java 2001/08/22 >12:25:02 1.1 > +++ betwixt/src/java/org/apache/commons/betwixt/XMLBeanInfo.java 2001/12/08 >09:54:29 > @@ -22,14 +22,16 @@ > > private ElementDescriptor elementDescriptor; > > - > + /** Base constructor */ > public XMLBeanInfo() { > } > > + /** Get descriptor for bean represention */ > public ElementDescriptor getElementDescriptor() { > return elementDescriptor; > } > > + /** Set descriptor for bean represention */ > public void setElementDescriptor(ElementDescriptor elementDescriptor) { > this.elementDescriptor = elementDescriptor; > } > Index: betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java > =================================================================== > RCS file: >/home/cvs/jakarta-commons-sandbox/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java,v > retrieving revision 1.8 > diff -u -r1.8 XMLIntrospector.java > --- betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java 2001/11/19 >10:10:51 1.8 > +++ betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java 2001/12/08 >09:54:57 > @@ -41,19 +41,32 @@ > > /** should attributes or elements be used for primitive types */ > private boolean attributesForPrimitives = true; > - > + > + /** Base constructor */ > public XMLIntrospector() { > } > > + /** Create a standard <code>XMLBeanInfo</code> by introspection > + The actual introspection depends only on the <code>BeanInfo</code> > + associated with the bean. > + */ > public XMLBeanInfo introspect(Object bean) throws IntrospectionException { > return introspect( bean.getClass() ); > } > > + /** Create a standard <code>XMLBeanInfo</code> by introspection. > + The actual introspection depends only on the <code>BeanInfo</code> > + associated with the bean. > + */ > public XMLBeanInfo introspect(Class aClass) throws IntrospectionException { > BeanInfo info = Introspector.getBeanInfo( aClass ); > return introspect( info ); > } > > + /** Create a standard <code>XMLBeanInfo</code> by introspection. > + The actual introspection depends only on the <code>BeanInfo</code> > + associated with the bean. > + */ > public XMLBeanInfo introspect(BeanInfo beanInfo) throws IntrospectionException >{ > XMLBeanInfo answer = createXMLBeanInfo( beanInfo ); > > @@ -115,12 +128,13 @@ > return answer; > } > > - /** Should attributes be used for primitive types or elements. > + /** Should attributes (or elements) be used for primitive types. > */ > public boolean isAttributesForPrimitives() { > return attributesForPrimitives; > } > > + /** Set whether attributes (or elements) should be used for primitive types. */ > public void setAttributesForPrimitives(boolean attributesForPrimitives) { > this.attributesForPrimitives = attributesForPrimitives; > } > @@ -128,6 +142,7 @@ > > // Implementation methods > //------------------------------------------------------------------------- > + /** Loop through properties and process each one */ > protected void addProperties(BeanInfo beanInfo, List elements, List attributes) >throws IntrospectionException { > PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors(); > if ( descriptors != null ) { > @@ -137,6 +152,11 @@ > } > } > > + /** > + * Process a property. > + * Go through and work out whether it's a loop property, a primitive or a >standard. > + * The class property is ignored. > + */ > protected void addProperty(BeanInfo beanInfo, PropertyDescriptor >propertyDescriptor, List elements, List attributes) throws IntrospectionException { > Class type = propertyDescriptor.getPropertyType(); > NodeDescriptor nodeDescriptor = null; > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- Scott Sanders - [EMAIL PROTECTED] -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>