svn commit: rev 43350 - avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine

[email protected] 4 Sep 2004 20:07:34 -0000
Newsgroups gmane.comp.jakarta.avalon.cvs
Message-ID <[email protected]>
Author: oberhack
Date: Sat Sep  4 13:07:33 2004
New Revision: 43350

Modified:
   avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/DirectoryTemplateManager.java
   avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/ResourceTemplateManager.java
Log:


Modified: avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/DirectoryTemplateManager.java
==============================================================================
--- avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/DirectoryTemplateManager.java	(original)
+++ avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/DirectoryTemplateManager.java	Sat Sep  4 13:07:33 2004
@@ -19,10 +19,13 @@
 
 import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
 import java.util.Hashtable;
 import java.util.Set;
 
-import org.apache.metro.studio.eclipse.core.MetroStudioCore;
+import org.apache.metro.studio.eclipse.core.MetroStudioCore; 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 
@@ -38,6 +41,7 @@
 {
 
     private Hashtable directoryTemplates = new Hashtable();
+    private static XStream xstream;
 
     /**
      *  
@@ -105,9 +109,7 @@
     public static DirectoryTemplateManager load(String filePathName)
     {
 
-        XStream xstream = new XStream(new DomDriver());
-        initXStream(xstream);
-        
+   
         FileReader reader = null;
         try
         {
@@ -122,19 +124,36 @@
         return (DirectoryTemplateManager) xstream.fromXML(reader);
     }
 
-    public static void initXStream(XStream xstream)
+    public static void initXStream()
     {
-        xstream.alias("DirectoryTemplates", DirectoryTemplateManager.class);
-        xstream.alias("DirectoryTemplate", DirectoryTemplate.class);
-        xstream.alias("Directory", Directory.class);
-        xstream.alias("Library", Library.class);
-        
+        xstream = new XStream(new DomDriver());
+        addXStreamAliases(xstream);
     }
     /**
      * @param xstream
      */
-    public void addXStreamAliases(XStream xstream)
+    public static void addXStreamAliases(XStream xstr)
+    {
+        xstr.alias("DirectoryTemplates", DirectoryTemplateManager.class);
+        xstr.alias("DirectoryTemplate", DirectoryTemplate.class);
+        xstr.alias("Directory", Directory.class);
+        xstr.alias("Library", Library.class);
+    }
+
+    /**
+     * 
+     */
+    public void store(String configFileLocation)
     {
-        initXStream(xstream);
+        try
+        {
+            Writer out = new FileWriter(configFileLocation);
+            xstream.toXML(this, out);
+        } catch (IOException e)
+        {
+            MetroStudioCore.log(e,
+            "can't write xstream");
+        }
+        
     }
 }

Modified: avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/ResourceTemplateManager.java
==============================================================================
--- avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/ResourceTemplateManager.java	(original)
+++ avalon/trunk/central/laboratory/studio/eclipse/core/src/org/apache/metro/studio/eclipse/core/templateengine/ResourceTemplateManager.java	Sat Sep  4 13:07:33 2004
@@ -19,6 +19,9 @@
 
 import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Set;
@@ -41,6 +44,7 @@
 
     private Hashtable resourceTemplates = new Hashtable();
     private DirectoryTemplateManager directoryManager;
+    private static XStream xstream;
     
     final static String baseDir = MetroStudioCore.getDefault()
     .getPluginLocation().toString();
@@ -61,10 +65,9 @@
             resourceFilePathName = getDefaultFilePathName();
         }
         
-        XStream xstream = new XStream(new DomDriver()); 
-        initXStream(xstream);
+        initXStream();
 
-        new DirectoryTemplateManager().addXStreamAliases(xstream);
+        DirectoryTemplateManager.addXStreamAliases(xstream);
         FileReader reader = null;
         try
         {
@@ -93,12 +96,14 @@
     /**
      * @param xstream
      */
-    public static void initXStream(XStream xstream)
+    public static void initXStream()
     {
+        xstream = new XStream(new DomDriver());
         xstream.alias("ResourceTemplates", ResourceTemplateManager.class);
         xstream.alias("ResourceTemplate", ResourceTemplate.class);
         xstream.alias("Resource", Resource.class);
         xstream.alias("Library", Library.class);
+
     }
 
     public void addResourceTemplate(ResourceTemplate resource)
@@ -135,6 +140,7 @@
      */
     public void importDirectoryTemplates(DirectoryTemplateManager dm)
     {
+        DirectoryTemplateManager.addXStreamAliases(xstream);
         directoryManager = dm;
     }
     
@@ -158,6 +164,22 @@
     public Hashtable getResourceTemplates()
     {
         return resourceTemplates;
+    }
+
+    /**
+     * @param resourcesLocation
+     */
+    public void store(String resourcesLocation)
+    {
+        try
+        {
+            Writer out = new FileWriter(resourcesLocation);
+            xstream.toXML(this, out);
+        } catch (IOException e)
+        {
+            MetroStudioCore.log(e, "cant write xstream");
+        }
+        
     }
 
 }