]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/MigrationTools/org/tianocore/migration/Common.java
Laplace take over SourceFileReplacer.java
[mirror_edk2.git] / Tools / Source / MigrationTools / org / tianocore / migration / Common.java
index 44b25e7e12d9b630c367c13a1c185b8855da05ca..a7154b6129a6cc406222256c0fc90aaa35193529 100644 (file)
@@ -60,7 +60,13 @@ public final class Common {
        //-----------------------------------file&string---------------------------------------//\r
 \r
        //--------------------------------------dir--------------------------------------------//\r
-       \r
+       /*\r
+       public static final HashSet<String> walkDir(String path, int mode) throws Exception {\r
+               HashSet<String> pathlist = new HashSet<String>();\r
+               Common.toDoAll(path, Common.class.getMethod("walkDir", String.class), null, null, mode);\r
+               return pathlist;\r
+       }\r
+       */\r
        public static final void ensureDir(String objFileWhole) {\r
                File tempdir;\r
                Matcher mtrseparate = ptnseparate.matcher(objFileWhole);\r
@@ -136,22 +142,54 @@ public final class Common {
                        }\r
                }\r
        }\r
+\r
+       public static final void toDoAll(Set<String> set, ForDoAll fda) throws Exception {\r
+               Iterator<String> di = set.iterator();\r
+               while (di.hasNext()) {\r
+                       fda.run(di.next());\r
+               }\r
+       }\r
        \r
-       public static void toDoAll(String path, ForDoAll fda) throws Exception { // filter of file type can be done in toDo\r
+       public static final void toDoAll(String path, ForDoAll fda, int type) throws Exception { // filter of file type can be done in toDo\r
                String[] list = new File(path).list();\r
                File test;\r
 \r
+               if (type == DIR || type == BOTH) {\r
+                       fda.run(path);\r
+               }\r
                for (int i = 0 ; i < list.length ; i++) {\r
                        test = new File(path + File.separator + list[i]);\r
                        if (test.isDirectory()) {\r
-                               toDoAll(path + File.separator + list[i], fda);\r
+                               if (fda.filter(test)) {\r
+                                       toDoAll(path + File.separator + list[i], fda, type);\r
+                               }\r
                        } else {\r
-                               fda.toDo(path + File.separator + list[i]);\r
+                               if (type == FILE || type == BOTH) {\r
+                                       fda.run(path + File.separator + list[i]);\r
+                               }\r
                        }\r
                }\r
        }\r
        \r
        public static interface ForDoAll {\r
-               public void toDo(String filepath) throws Exception;\r
+               public void run(String filepath) throws Exception;\r
+               \r
+               public boolean filter(File dir);\r
+       }\r
+       \r
+       public static abstract class Laplace {\r
+               public void transform(String src, String des) throws Exception {\r
+                       Common.string2file(operation(Common.file2string(src)), des);\r
+               }\r
+               \r
+               public void run() {\r
+                       \r
+               }\r
+               \r
+               public abstract String operation(String wholeline);\r
+               \r
+               public abstract boolean recognize(String filename);\r
+               \r
+               public abstract String namechange(String oldname);\r
        }\r
 }\r