cvs commit: spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata ComponentMetadata.java InterfaceMetadata.java

Mike Hogan <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
hogie       03/11/03 13:15:29

  Modified:    sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata
                        ComponentMetadata.java InterfaceMetadata.java
  Log:
  Can submit more than one interface per jar
  
  Revision  Changes    Path
  1.3       +23 -27    spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata/ComponentMetadata.java
  
  Index: ComponentMetadata.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata/ComponentMetadata.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ComponentMetadata.java	26 Oct 2003 13:46:41 -0000	1.2
  +++ ComponentMetadata.java	3 Nov 2003 21:15:29 -0000	1.3
  @@ -2,6 +2,7 @@
   
   import com.thoughtworks.xstream.XStream;
   import com.thoughtworks.xstream.xml.dom.DomXMLReader;
  +import org.apache.commons.lang.builder.EqualsBuilder;
   import org.w3c.dom.Document;
   import org.xml.sax.SAXException;
   
  @@ -10,16 +11,15 @@
   import javax.xml.parsers.ParserConfigurationException;
   import java.io.File;
   import java.io.IOException;
  +import java.util.HashMap;
   import java.util.Iterator;
  -import java.util.Collections;
  +import java.util.Map;
   
   public class ComponentMetadata {
  -    //TODO For now I am going to deal with only one interface, until I figure out what to do with xstream
  -    //private InterfaceMetadata [] interfaces; //TODO Now a map because XStream cannot yet deal with Maps
  -    private InterfaceMetadata interfaceMetadata = null;
  +    private Map interfaces = null;
   
       public ComponentMetadata() {
  -        //this.interfaces = new InterfaceMetadata[0];
  +        this.interfaces = new HashMap();
       }
   
       public static ComponentMetadata fromXml(File metadataFile) throws IOException, ParserConfigurationException, SAXException {
  @@ -39,36 +39,32 @@
       }
   
       public InterfaceMetadata getInterfaceMetadataForName(final String name) {
  -        if ( interfaceMetadata.getFullyQualifiedName().equals(name)) {
  -            return interfaceMetadata;
  -        }
  -        return null;
  -/*
  -        InterfaceMetadata result = null;
  -        int index = 0;
  -        while ( result == null && index < interfaces.length) {
  -            final InterfaceMetadata interfaceMetadata = interfaces[index++];
  -            if ( interfaceMetadata.getFullyQualifiedName().equals(name)) {
  -                result = interfaceMetadata;
  -            }
  -        }
  -        return result;
  -*/
  +        return (InterfaceMetadata) interfaces.get(name);
       }
   
       public int numInterfaces() {
  -        return interfaceMetadata != null ? 1 : 0;
  +        return interfaces.size();
       }
   
       public void addInterface(InterfaceMetadata interfaceMetadata) {
  -        this.interfaceMetadata = interfaceMetadata;
  -        /*List temp = new ArrayList(Arrays.asList(interfaces));
  -        temp.add(interfaceMetadata);
  -        interfaces = new InterfaceMetadata[temp.size()];
  -        interfaces = (InterfaceMetadata []) temp.toArray(interfaces);*/
  +        interfaces.put(interfaceMetadata.getFullyQualifiedName(), interfaceMetadata);
       }
   
       public Iterator getInterfaces() {
  -        return Collections.singletonList(interfaceMetadata).iterator();
  +        return interfaces.values().iterator();
  +    }
  +
  +    public String toXml() {
  +        return ((new XStream()).toXML(this));
  +    }
  +
  +    public boolean equals(Object o) {
  +        if (!(o instanceof ComponentMetadata)) {
  +            return false;
  +        }
  +        ComponentMetadata rhs = (ComponentMetadata) o;
  +        return new EqualsBuilder()
  +                .append(interfaces, rhs.interfaces)
  +                .isEquals();
       }
   }
  
  
  
  1.2       +17 -2     spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata/InterfaceMetadata.java
  
  Index: InterfaceMetadata.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata/InterfaceMetadata.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InterfaceMetadata.java	26 Oct 2003 13:46:41 -0000	1.1
  +++ InterfaceMetadata.java	3 Nov 2003 21:15:29 -0000	1.2
  @@ -1,5 +1,7 @@
   package org.componenthaus.ant.metadata;
   
  +import org.apache.commons.lang.builder.EqualsBuilder;
  +
   public class InterfaceMetadata {
       private String packageName;
       private String name;
  @@ -36,13 +38,26 @@
       private String firstLine(String javadoc) {
           String result = javadoc;
           int indexOfFirstFullStop = javadoc.indexOf(".");
  -        if ( indexOfFirstFullStop != -1 ) {
  -            result = javadoc.substring(0,indexOfFirstFullStop + 1);  //+1 to include the full stop itself.
  +        if (indexOfFirstFullStop != -1) {
  +            result = javadoc.substring(0, indexOfFirstFullStop + 1);  //+1 to include the full stop itself.
           }
           return result;
       }
   
       public String getSource() {
           return source;
  +    }
  +
  +    public boolean equals(Object o) {
  +        if (!(o instanceof InterfaceMetadata)) {
  +            return false;
  +        }
  +        InterfaceMetadata rhs = (InterfaceMetadata) o;
  +        return new EqualsBuilder()
  +                .append(packageName, rhs.packageName)
  +                .append(name, rhs.name)
  +                .append(javadoc, rhs.javadoc)
  +                .append(source, rhs.source)
  +                .isEquals();
       }
   }
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.