]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/AggregationOperation.java
1. Support to Create/Update/Delete/Install far file
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / AggregationOperation.java
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/AggregationOperation.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/AggregationOperation.java
new file mode 100644 (file)
index 0000000..b8a6d40
--- /dev/null
@@ -0,0 +1,86 @@
+/** @file\r
+\r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution.  The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.far;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+\r
+import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
+\r
+public class AggregationOperation {\r
+\r
+    public static synchronized List<PackageIdentification> union(List<PackageIdentification> list1,\r
+                                                                 List<PackageIdentification> list2) {\r
+        List<PackageIdentification> result = new ArrayList<PackageIdentification>();\r
+        result.addAll(list1);\r
+        Iterator<PackageIdentification> iter = list2.iterator();\r
+        while (iter.hasNext()) {\r
+            PackageIdentification item = iter.next();\r
+            if (!belongs(item, result)) {\r
+                result.add(item);\r
+            }\r
+        }\r
+        return result;\r
+    }\r
+\r
+    public static synchronized List<PackageIdentification> intersection(List<PackageIdentification> list1,\r
+                                                                        List<PackageIdentification> list2) {\r
+        List<PackageIdentification> result = new ArrayList<PackageIdentification>();\r
+        Iterator<PackageIdentification> iter = list1.iterator();\r
+        while (iter.hasNext()) {\r
+            PackageIdentification item = iter.next();\r
+            if (belongs(item, list2)) {\r
+                result.add(item);\r
+            }\r
+        }\r
+        return result;\r
+    }\r
+\r
+    public static synchronized List<PackageIdentification> minus(List<PackageIdentification> list1,\r
+                                                                 List<PackageIdentification> list2) {\r
+        List<PackageIdentification> result = new ArrayList<PackageIdentification>();\r
+        Iterator<PackageIdentification> iter = list1.iterator();\r
+        while (iter.hasNext()) {\r
+            PackageIdentification item = iter.next();\r
+            if (!belongs(item, list2)) {\r
+                result.add(item);\r
+            }\r
+        }\r
+        return result;\r
+    }\r
+\r
+    public static synchronized boolean belongs(PackageIdentification o, List<PackageIdentification> list) {\r
+        Iterator<PackageIdentification> iter = list.iterator();\r
+        while (iter.hasNext()) {\r
+            if (iter.next().equalsWithGuid(o)) {\r
+                return true;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    public static synchronized List<PackageIdentification> getExistedItems(PackageIdentification o,\r
+                                                                           List<PackageIdentification> list) {\r
+        List<PackageIdentification> result = new ArrayList<PackageIdentification>();\r
+        Iterator<PackageIdentification> iter = list.iterator();\r
+        while (iter.hasNext()) {\r
+            PackageIdentification item = iter.next();\r
+            if (item.equalsWithGuid(o)) {\r
+                result.add(item);\r
+            }\r
+        }\r
+        return result;\r
+    }\r
+}\r