diff collectionimp.d @ 166:71ec57b4c8f3

merge
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 01:38:10 +0200
parents 25f1f92fa3df
children 0ea0c9f9008f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/collectionimp.d	Mon Sep 08 01:38:10 2008 +0200
@@ -0,0 +1,93 @@
+module packageimport;
+
+import tango.io.FilePath;
+import tango.io.File;
+import tango.io.Buffer;
+import tango.io.stream.FileStream;
+import tango.io.stream.TextFileStream;
+import tango.util.log.Trace;
+import tango.text.Regex;
+import tango.text.Util;
+import tango.text.stream.LineIterator;
+import tango.text.convert.Format;
+
+const char[][] javaimps = [
+"import java.util.ArrayList;", 
+"import java.util.Arrays;", 
+"import java.util.Collection;", 
+"import java.util.Collections;", 
+"import java.util.HashMap;", 
+"import java.util.HashSet;", 
+"import java.util.IdentityHashMap;", 
+"import java.util.Iterator;", 
+"import java.util.LinkedHashMap;", 
+"import java.util.LinkedList;", 
+"import java.util.List;", 
+"import java.util.ListIterator;", 
+"import java.util.Map;", 
+"import java.util.Map.Entry;", 
+"import java.util.Set;", 
+"import java.util.Comparator;", 
+"import java.util.Stack;"
+];
+void processDir( char[] dir ){
+    auto pack = dir.dup.replace( '/', '.' );
+    auto fp = FilePath(dir);
+    char[][] mods;
+    // read all module names
+    foreach( fileinfo; fp ){
+        if( fileinfo.folder ){
+            processDir( fileinfo.path ~ fileinfo.name );
+            continue;
+        }
+        if( fileinfo.name.length > 2 && fileinfo.name[ $-2 .. $ ] == ".d" ){
+            mods ~= fileinfo.name.dup;
+        }
+    }
+    // foreach module
+    foreach( mod; mods ){
+        auto filename = Format("{}/{}", dir, mod );
+        auto cont = cast(char[])File( filename ).read;
+        char[][] lines = cont.splitLines();
+        char[][] outlines = lines.dup;
+        bool found = true;
+        foreach( uint idx, char[] line; lines ){
+            foreach( javaimp; javaimps ){
+                if( line == javaimp ){
+                    outlines[idx] = found ? "import dwtx.dwtxhelper.Collection;" : "";
+                    found = false;
+                }
+            }
+        }
+        if( !found ){
+            Trace.formatln( "{} ", filename );
+            bool first = true;
+            auto output = new TextFileOutput( filename );
+            foreach( line; outlines ){
+                if( !first ){
+                    output.write( \n );
+                }
+                first = false;
+                output.write( line );
+            }
+            output.flush();
+            output.close();
+        }
+    }
+        // read content into buffer
+        // search module statement and print to outfile
+        // write package imports
+        // write all remaining lines
+}
+
+void main(){
+    processDir( "dwtx/text" );
+    processDir( "dwtx/jface/text" );
+    processDir( "dwtx/jface/internal/text" );
+}
+
+
+
+
+
+