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