Author: andy
Date: Wed Aug 28 13:37:04 2013
New Revision: 1518203

URL: http://svn.apache.org/r1518203
Log:
JENA-525 : Add cloning operation for AdapterFileManager.
Set the global location mapper with the global StreamManager.

Modified:
    
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
    
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java

Modified: 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java?rev=1518203&r1=1518202&r2=1518203&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
 (original)
+++ 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
 Wed Aug 28 13:37:04 2013
@@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory ;
 
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.shared.NotFoundException ;
+import com.hp.hpl.jena.util.FileManager ;
 import com.hp.hpl.jena.util.FileUtils ;
 import com.hp.hpl.jena.util.TypedStream ;
 
@@ -122,24 +123,34 @@ public class AdapterFileManager extends 
         streamManager = new StreamManager() ;
     }
     
-    /** Create a new file manager that is a copy of another.
-     * Location mapper and locators chain are copied (the locators are not 
cloned).
-     * @param filemanager
-     */
-    public AdapterFileManager(com.hp.hpl.jena.util.FileManager filemanager)
-    {
-        this() ;
-        Iterator<com.hp.hpl.jena.util.Locator> iter = filemanager.locators() ;
-        while ( iter.hasNext() )
-            streamManager.addLocator(AdapterLib.convert(iter.next())) ;
-
-        com.hp.hpl.jena.util.LocationMapper locmap = 
filemanager.getLocationMapper() ;
-        streamManager.setLocationMapper(AdapterLib.copyConvert(locmap)) ;
+//    /** Create a new file manager that is a copy of another.
+//     * Location mapper and locators chain are copied (the locators are not 
cloned).
+//     * @param filemanager
+//     */
+//    public AdapterFileManager(com.hp.hpl.jena.util.FileManager filemanager)
+//    {
+//        this() ;
+//        Iterator<com.hp.hpl.jena.util.Locator> iter = filemanager.locators() 
;
+//        while ( iter.hasNext() )
+//            streamManager.addLocator(AdapterLib.convert(iter.next())) ;
+//
+//        com.hp.hpl.jena.util.LocationMapper locmap = 
filemanager.getLocationMapper() ;
+//        streamManager.setLocationMapper(AdapterLib.copyConvert(locmap)) ;
+//    }
+    
+    @Override
+    public FileManager clone() { 
+        StreamManager sm = new StreamManager(streamManager) ;
+        // clone LM
+        AdapterFileManager x = new AdapterFileManager(sm) ;
+        return x ;
+        
     }
 
     public AdapterFileManager(StreamManager streamManager)
     {
-        this(streamManager, (LocationMapper)null) ;
+        this(streamManager, 
+             streamManager == null ? null : streamManager.getLocationMapper() 
) ;
     }
     
     /** Create a FileManger using a RIOT StreamManager and RIOT LocationMapper 
 */
@@ -154,7 +165,7 @@ public class AdapterFileManager extends 
     /** Create a "standard" FileManager. */
     public static AdapterFileManager makeGlobal()
     {
-        AdapterFileManager fMgr = new AdapterFileManager(StreamManager.get(), 
JenaIOEnvironment.getLocationMapper()) ;
+        AdapterFileManager fMgr = new AdapterFileManager(StreamManager.get()) ;
         return fMgr ;
     }
     

Modified: 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java?rev=1518203&r1=1518202&r2=1518203&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java
 (original)
+++ 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java
 Wed Aug 28 13:37:04 2013
@@ -47,6 +47,11 @@ public class StreamManager
     
     public StreamManager() {}
     
+    public StreamManager(StreamManager other) {
+        handlers.addAll(other.handlers) ;
+        mapper = other.mapper ;
+    }
+    
     /** Return a default configuration StreamManager 
      *  with a {@link LocatorFile}, 
      *  {@link LocatorURL},
@@ -58,6 +63,7 @@ public class StreamManager
         streamManager.addLocator(new LocatorFile(null)) ;
         streamManager.addLocator(new LocatorURL()) ;
         streamManager.addLocator(new 
LocatorClassLoader(streamManager.getClass().getClassLoader())) ;
+        streamManager.setLocationMapper(JenaIOEnvironment.getLocationMapper()) 
;
         return streamManager ;
     }
     
@@ -131,7 +137,6 @@ public class StreamManager
         }
         return null; 
     }
-    
 
     /** Set the location mapping */
     public void setLocationMapper(LocationMapper _mapper) { mapper = _mapper ; 
}


Reply via email to