Mercurial > projects > dwt-addons
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" ); +} + + + + + +