Mercurial > projects > dwt-addons
comparison collectionimp.d @ 166:71ec57b4c8f3
merge
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 08 Sep 2008 01:38:10 +0200 |
parents | 25f1f92fa3df |
children | 0ea0c9f9008f |
comparison
equal
deleted
inserted
replaced
165:20cdc983a411 | 166:71ec57b4c8f3 |
---|---|
1 module packageimport; | |
2 | |
3 import tango.io.FilePath; | |
4 import tango.io.File; | |
5 import tango.io.Buffer; | |
6 import tango.io.stream.FileStream; | |
7 import tango.io.stream.TextFileStream; | |
8 import tango.util.log.Trace; | |
9 import tango.text.Regex; | |
10 import tango.text.Util; | |
11 import tango.text.stream.LineIterator; | |
12 import tango.text.convert.Format; | |
13 | |
14 const char[][] javaimps = [ | |
15 "import java.util.ArrayList;", | |
16 "import java.util.Arrays;", | |
17 "import java.util.Collection;", | |
18 "import java.util.Collections;", | |
19 "import java.util.HashMap;", | |
20 "import java.util.HashSet;", | |
21 "import java.util.IdentityHashMap;", | |
22 "import java.util.Iterator;", | |
23 "import java.util.LinkedHashMap;", | |
24 "import java.util.LinkedList;", | |
25 "import java.util.List;", | |
26 "import java.util.ListIterator;", | |
27 "import java.util.Map;", | |
28 "import java.util.Map.Entry;", | |
29 "import java.util.Set;", | |
30 "import java.util.Comparator;", | |
31 "import java.util.Stack;" | |
32 ]; | |
33 void processDir( char[] dir ){ | |
34 auto pack = dir.dup.replace( '/', '.' ); | |
35 auto fp = FilePath(dir); | |
36 char[][] mods; | |
37 // read all module names | |
38 foreach( fileinfo; fp ){ | |
39 if( fileinfo.folder ){ | |
40 processDir( fileinfo.path ~ fileinfo.name ); | |
41 continue; | |
42 } | |
43 if( fileinfo.name.length > 2 && fileinfo.name[ $-2 .. $ ] == ".d" ){ | |
44 mods ~= fileinfo.name.dup; | |
45 } | |
46 } | |
47 // foreach module | |
48 foreach( mod; mods ){ | |
49 auto filename = Format("{}/{}", dir, mod ); | |
50 auto cont = cast(char[])File( filename ).read; | |
51 char[][] lines = cont.splitLines(); | |
52 char[][] outlines = lines.dup; | |
53 bool found = true; | |
54 foreach( uint idx, char[] line; lines ){ | |
55 foreach( javaimp; javaimps ){ | |
56 if( line == javaimp ){ | |
57 outlines[idx] = found ? "import dwtx.dwtxhelper.Collection;" : ""; | |
58 found = false; | |
59 } | |
60 } | |
61 } | |
62 if( !found ){ | |
63 Trace.formatln( "{} ", filename ); | |
64 bool first = true; | |
65 auto output = new TextFileOutput( filename ); | |
66 foreach( line; outlines ){ | |
67 if( !first ){ | |
68 output.write( \n ); | |
69 } | |
70 first = false; | |
71 output.write( line ); | |
72 } | |
73 output.flush(); | |
74 output.close(); | |
75 } | |
76 } | |
77 // read content into buffer | |
78 // search module statement and print to outfile | |
79 // write package imports | |
80 // write all remaining lines | |
81 } | |
82 | |
83 void main(){ | |
84 processDir( "dwtx/text" ); | |
85 processDir( "dwtx/jface/text" ); | |
86 processDir( "dwtx/jface/internal/text" ); | |
87 } | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 |