You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@locus.apache.org on 2000/12/02 08:32:09 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/common NamespaceAccessToken.java NamespaceAccessTokenImpl.java XMLUnmarshaller.java

remm        00/12/01 23:32:08

  Modified:    src/share/org/apache/slide/common NamespaceAccessToken.java
                        NamespaceAccessTokenImpl.java XMLUnmarshaller.java
  Log:
  - Allow importing data from a reader.
  - Fix import of links.
  
  Revision  Changes    Path
  1.9       +23 -5     jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessToken.java
  
  Index: NamespaceAccessToken.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessToken.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- NamespaceAccessToken.java	2000/11/25 01:34:49	1.8
  +++ NamespaceAccessToken.java	2000/12/02 07:32:07	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessToken.java,v 1.8 2000/11/25 01:34:49 remm Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/11/25 01:34:49 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessToken.java,v 1.9 2000/12/02 07:32:07 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/12/02 07:32:07 $
    *
    * ====================================================================
    *
  @@ -69,7 +69,10 @@
   import java.util.Stack;
   import java.util.Date;
   import java.io.Reader;
  +import java.io.InputStream;
   import java.io.Writer;
  +import java.io.IOException;
  +import org.xml.sax.SAXException;
   import org.apache.slide.structure.*;
   import org.apache.slide.content.*;
   import org.apache.slide.lock.*;
  @@ -84,7 +87,7 @@
    * Namespace access token interface.
    * 
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public interface NamespaceAccessToken {
       
  @@ -101,7 +104,7 @@
       
       
       /**
  -     * Import data from Avalon configuration object.
  +     * Import data from configuration object.
        * 
        * @param token SlideToken, used for access to the namespace
        * @param objectNodeConfiguration Configuration object
  @@ -114,6 +117,21 @@
                       Configuration objectNodeConfiguration) 
           throws ConfigurationException, UnknownObjectClassException, 
           ServiceAccessException;
  +    
  +    
  +    /**
  +     * Import data from reader.
  +     * 
  +     * @param token SlideToken, used for access to the namespace
  +     * @param reader Reader
  +     * @exception ConfigurationException Something went wrong during the 
  +     * reading of the XML
  +     * @exception UnknownObjectClassException Object class not found
  +     * @exception ServiceAccessException Error accessing service
  +     */
  +    void importData(SlideToken token, Reader reader) 
  +        throws ConfigurationException, UnknownObjectClassException, 
  +        ServiceAccessException, SAXException, IOException;
       
       
       /**
  
  
  
  1.9       +52 -4     jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java
  
  Index: NamespaceAccessTokenImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- NamespaceAccessTokenImpl.java	2000/11/25 01:34:49	1.8
  +++ NamespaceAccessTokenImpl.java	2000/12/02 07:32:07	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v 1.8 2000/11/25 01:34:49 remm Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/11/25 01:34:49 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v 1.9 2000/12/02 07:32:07 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/12/02 07:32:07 $
    *
    * ====================================================================
    *
  @@ -70,6 +70,14 @@
   import java.util.Date;
   import java.io.Reader;
   import java.io.Writer;
  +import java.io.InputStream;
  +import java.io.OutputStream;
  +import java.io.FileInputStream;
  +import java.io.IOException;
  +import javax.xml.parsers.SAXParser;
  +import javax.xml.parsers.SAXParserFactory;
  +import org.xml.sax.InputSource;
  +import org.xml.sax.SAXException;
   import org.apache.slide.structure.*;
   import org.apache.slide.content.*;
   import org.apache.slide.lock.*;
  @@ -77,13 +85,15 @@
   import org.apache.slide.macro.*;
   import org.apache.slide.authenticate.CredentialsToken;
   import org.apache.slide.util.conf.Configuration;
  +import org.apache.slide.util.conf.ConfigurationElement;
  +import org.apache.slide.util.conf.Populate;
   import org.apache.slide.util.conf.ConfigurationException;
   
   /**
    * Namespace accessor class.
    * 
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public final class NamespaceAccessTokenImpl implements NamespaceAccessToken {
       
  @@ -237,6 +247,44 @@
       }
       
       
  +    /**
  +     * Import data from reader.
  +     * 
  +     * @param token SlideToken, used for access to the namespace
  +     * @param reader Reader
  +     * @exception ConfigurationException Something went wrong during the 
  +     * reading of the XML
  +     * @exception UnknownObjectClassException Object class not found
  +     * @exception ServiceAccessException Error accessing service
  +     */
  +    public void importData(SlideToken token, Reader reader) 
  +        throws ConfigurationException, UnknownObjectClassException, 
  +        ServiceAccessException, SAXException, IOException {
  +
  +        try {
  +            
  +            SAXParserFactory factory = SAXParserFactory.newInstance();
  +            factory.setNamespaceAware(false);
  +            factory.setValidating(false);
  +            SAXParser parser = factory.newSAXParser();
  +            
  +            Populate pop = new Populate();
  +            Configuration configuration = new ConfigurationElement
  +                (pop.load(new InputSource(reader), parser.getParser()));
  +            
  +            importData(token, configuration);
  +            
  +        } catch (javax.xml.parsers.FactoryConfigurationError e) {
  +            throw new SlideRuntimeException(e.getMessage());
  +        } catch (javax.xml.parsers.ParserConfigurationException e) {
  +            throw new SlideRuntimeException(e.getMessage());
  +        }/* catch (Exception e) {
  +            throw new ConfigurationException(e.getMessage());
  +            }*/
  +
  +    }
  +
  +
       /**
        * Saves Slide Data to XML.
        * 
  
  
  
  1.10      +15 -5     jakarta-slide/src/share/org/apache/slide/common/XMLUnmarshaller.java
  
  Index: XMLUnmarshaller.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/XMLUnmarshaller.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XMLUnmarshaller.java	2000/11/25 01:34:50	1.9
  +++ XMLUnmarshaller.java	2000/12/02 07:32:08	1.10
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/XMLUnmarshaller.java,v 1.9 2000/11/25 01:34:50 remm Exp $
  - * $Revision: 1.9 $
  - * $Date: 2000/11/25 01:34:50 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/XMLUnmarshaller.java,v 1.10 2000/12/02 07:32:08 remm Exp $
  + * $Revision: 1.10 $
  + * $Date: 2000/12/02 07:32:08 $
    *
    * ====================================================================
    *
  @@ -84,7 +84,7 @@
    * XMLUnmarshaller class.
    * 
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.9 $
  + * @version $Revision: 1.10 $
    */
   public final class XMLUnmarshaller {
       
  @@ -166,7 +166,17 @@
               if (uri.equals("/")) {
                   // FIXME
               } else {
  -                accessToken.getStructureHelper().create(token, object, uri);
  +                
  +                if (object instanceof LinkNode) {
  +                    String linkedUri = 
  +                        objectDefinition.getAttribute("linkedUri");
  +                    accessToken.getStructureHelper().createLink
  +                        (token, (LinkNode) object, uri, 
  +                         new SubjectNode(linkedUri));
  +                } else {
  +                    accessToken.getStructureHelper().create
  +                        (token, object, uri);
  +                }
               }
               
               // Retrieving the list of permissions on the object