]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1. Fix EDKT457 Multiple FPD, MSA or SPD files in a directory is prohibited
authorhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 30 Oct 2006 05:26:27 +0000 (05:26 +0000)
committerhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 30 Oct 2006 05:26:27 +0000 (05:26 +0000)
2. Fix EDKT450 Please don't allow user to set same Guid in clone operation

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1855 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/Clone.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/GlobalData.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/FindResultDetailInfo.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/PackageIdentification.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/PlatformIdentification.java

index 4643bb1e711d9e502b13437bbb47b2194453ec4f..d8030f775ac5cbe6803718133d4aae2564595271 100644 (file)
@@ -569,15 +569,19 @@ public class Clone extends IDialog {
      @retval false  Any one of name, guid and version is invalid\r
      \r
      **/\r
-    private boolean checkId() {\r
+    private boolean checkId(int mode) {\r
+        String name = this.jTextFieldBaseName.getText();\r
+        String guid = this.jTextFieldGuid.getText();\r
+        String version = this.jTextFieldVersion.getText();\r
+        \r
         //\r
         // Check Basename\r
         //\r
-        if (isEmpty(this.jTextFieldBaseName.getText())) {\r
+        if (isEmpty(name)) {\r
             Log.wrn("Clone", "The Name is required!");\r
             return false;\r
         }\r
-        if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
+        if (!DataValidation.isBaseName(name)) {\r
             Log\r
                .wrn("Clone",\r
                     "<html>Incorrect data type for the Name, it must<br>be a single word, starting with an alpha character.</html>");\r
@@ -587,11 +591,11 @@ public class Clone extends IDialog {
         //\r
         // Check Guid\r
         //\r
-        if (isEmpty(this.jTextFieldGuid.getText())) {\r
+        if (isEmpty(guid)) {\r
             Log.wrn("Clone", "A Guid is required!!");\r
             return false;\r
         }\r
-        if (!DataValidation.isGuid(this.jTextFieldGuid.getText())) {\r
+        if (!DataValidation.isGuid(guid)) {\r
             Log\r
                .wrn(\r
                     "Clone",\r
@@ -602,17 +606,40 @@ public class Clone extends IDialog {
         //\r
         // Check Version\r
         //\r
-        if (isEmpty(this.jTextFieldVersion.getText())) {\r
+        if (isEmpty(version)) {\r
             Log.wrn("Clone", "A Version must be entered!");\r
             return false;\r
         }\r
-        if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
+        if (!DataValidation.isVersion(version)) {\r
             Log\r
                .wrn(\r
                     "Clone",\r
                     "<html>Incorrect data type for Version, which must<br>be one or more digits, optionally followed by sequence<br>of one or more dot,  one or more digits; examples:<br>1.0 1.0.1 12.25.256</html>");\r
             return false;\r
         }\r
+        \r
+        if (mode == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
+            String packageGuid = packages.elementAt(this.jComboBoxExistingPackage.getSelectedIndex()).getGuid();\r
+            String packageVersion = packages.elementAt(this.jComboBoxExistingPackage.getSelectedIndex()).getVersion();\r
+            if (GlobalData.findModuleIdByGuidVersion(guid, version, packageGuid, packageVersion) != null) {\r
+                Log.wrn("Clone", "A module with same Guid and same Version already exists, please selece a new Guid or Version!");\r
+                return false;\r
+            }\r
+        }\r
+\r
+        if (mode == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
+            if (GlobalData.findPackageIdByGuidVersion(guid, version) != null) {\r
+                Log.wrn("Clone", "A package with same Guid and same Version already exists, please selece a new Guid or Version!");\r
+                return false;\r
+            }\r
+        }\r
+\r
+        if (mode == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
+            if (GlobalData.findPlatformIdByGuidVersion(guid, version) != null) {\r
+                Log.wrn("Clone", "A platform with same Guid and same Version already exists, please selece a new Guid or Version!");\r
+                return false;\r
+            }\r
+        }\r
 \r
         //\r
         // Save information to id\r
@@ -673,7 +700,7 @@ public class Clone extends IDialog {
         //\r
         if (mode == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
             trg = this.getModulePath();\r
-            if (src.equals(trg)) {\r
+            if (Tools.getFilePathOnly(src).equals(Tools.getFilePathOnly(trg))) {\r
                 Log.wrn("Clone", "The source and destination paths for cloning a module must be different!");\r
                 return false;\r
             }\r
@@ -682,7 +709,7 @@ public class Clone extends IDialog {
                 Log.wrn("Clone", "The target module already exists!");\r
                 return false;\r
             }\r
-            return checkId();\r
+            return checkId(mode);\r
         }\r
 \r
         //\r
@@ -703,7 +730,7 @@ public class Clone extends IDialog {
                 Log.wrn("Clone", "The target package already exists!");\r
                 return false;\r
             }\r
-            return checkId();\r
+            return checkId(mode);\r
         }\r
 \r
         //\r
@@ -714,12 +741,16 @@ public class Clone extends IDialog {
                 Log.wrn("Clone", "The platform clone must be located in the current workspace!");\r
                 return false;\r
             }\r
+            if (Tools.getFilePathOnly(src).equals(Tools.getFilePathOnly(trg))) {\r
+                Log.wrn("Clone", "The source and destination paths for cloning a platform must be different!");\r
+                return false;\r
+            }\r
             trgFile = new File(trg);\r
             if (trgFile.exists()) {\r
                 Log.wrn("Clone", "The target platform already exists.");\r
                 return false;\r
             }\r
-            return checkId();\r
+            return checkId(mode);\r
         }\r
 \r
         return true;\r
index b9462351b97369fb3cb97412692d3d506aac126e..83a6dd052aac7ef57eafc6cfa6e1565e81808a0d 100644 (file)
@@ -199,7 +199,7 @@ public class GlobalData {
         }\r
         return modulePath;\r
     }\r
-    \r
+\r
     /**\r
      Get a module id\r
      \r
@@ -208,9 +208,10 @@ public class GlobalData {
      @param packageGuid\r
      @param packageVersion\r
      @return\r
-    \r
-    **/\r
-    public static ModuleIdentification findIdByGuidVersion(String moduleGuid, String moduleVersion, String packageGuid, String packageVersion) {\r
+     \r
+     **/\r
+    public static ModuleIdentification findModuleIdByGuidVersion(String moduleGuid, String moduleVersion,\r
+                                                                 String packageGuid, String packageVersion) {\r
         ModuleIdentification mid = null;\r
         for (int index = 0; index < vModuleList.size(); index++) {\r
             if (vModuleList.elementAt(index).equals(moduleGuid, moduleVersion, packageGuid, packageVersion)) {\r
@@ -220,4 +221,42 @@ public class GlobalData {
         }\r
         return mid;\r
     }\r
+\r
+    /**\r
+     Get a package id\r
+     \r
+     @param packageGuid\r
+     @param packageVersion\r
+     @return\r
+     \r
+     **/\r
+    public static PackageIdentification findPackageIdByGuidVersion(String packageGuid, String packageVersion) {\r
+        PackageIdentification pid = null;\r
+        for (int index = 0; index < vPackageList.size(); index++) {\r
+            if (vPackageList.elementAt(index).equals(packageGuid, packageVersion)) {\r
+                pid = vPackageList.elementAt(index);\r
+                break;\r
+            }\r
+        }\r
+        return pid;\r
+    }\r
+\r
+    /**\r
+     Get a platform id \r
+     \r
+     @param platformGuid\r
+     @param platformVersion\r
+     @return\r
+     \r
+     **/\r
+    public static PlatformIdentification findPlatformIdByGuidVersion(String platformGuid, String platformVersion) {\r
+        PlatformIdentification pid = null;\r
+        for (int index = 0; index < vPlatformList.size(); index++) {\r
+            if (vPlatformList.elementAt(index).equals(platformGuid, platformVersion)) {\r
+                pid = vPlatformList.elementAt(index);\r
+                break;\r
+            }\r
+        }\r
+        return pid;\r
+    }\r
 }\r
index 472555b43955dbf9502c647ba2b7e403dde10e51..1b58b674115a7074ad5161a8c3224ae91cb0740e 100644 (file)
@@ -286,15 +286,15 @@ public class FindResultDetailInfo extends IFrame {
                                         // Write Module Sa Info\r
                                         //\r
                                         ModuleIdentification moduleSaId = GlobalData\r
-                                                                                    .findIdByGuidVersion(\r
-                                                                                                         msa\r
-                                                                                                            .getModuleGuid(),\r
-                                                                                                         msa\r
-                                                                                                            .getModuleVersion(),\r
-                                                                                                         msa\r
-                                                                                                            .getPackageGuid(),\r
-                                                                                                         msa\r
-                                                                                                            .getPackageVersion());\r
+                                                                                    .findModuleIdByGuidVersion(\r
+                                                                                                               msa\r
+                                                                                                                  .getModuleGuid(),\r
+                                                                                                               msa\r
+                                                                                                                  .getModuleVersion(),\r
+                                                                                                               msa\r
+                                                                                                                  .getPackageGuid(),\r
+                                                                                                               msa\r
+                                                                                                                  .getPackageVersion());\r
                                         tmp = tmp\r
                                               + TAB\r
                                               + TAB\r
@@ -539,15 +539,15 @@ public class FindResultDetailInfo extends IFrame {
                                             if (mid.equals(i.getModuleGuid(), i.getModuleVersion(), i.getPackageGuid(),\r
                                                            i.getPackageVersion())) {\r
                                                 ModuleIdentification moduleSaId = GlobalData\r
-                                                                                            .findIdByGuidVersion(\r
-                                                                                                                 msa\r
-                                                                                                                    .getModuleGuid(),\r
-                                                                                                                 msa\r
-                                                                                                                    .getModuleVersion(),\r
-                                                                                                                 msa\r
-                                                                                                                    .getPackageGuid(),\r
-                                                                                                                 msa\r
-                                                                                                                    .getPackageVersion());\r
+                                                                                            .findModuleIdByGuidVersion(\r
+                                                                                                                       msa\r
+                                                                                                                          .getModuleGuid(),\r
+                                                                                                                       msa\r
+                                                                                                                          .getModuleVersion(),\r
+                                                                                                                       msa\r
+                                                                                                                          .getPackageGuid(),\r
+                                                                                                                       msa\r
+                                                                                                                          .getPackageVersion());\r
                                                 if (moduleSaId != null) {\r
                                                     vModuleSa.addElement(moduleSaId);\r
                                                 }\r
index 23b6ff0290f53c4a48bcafd464f9ccbf31778cd9..e986f55baf7033d5d2c7b76a99521ca0e89d84d3 100644 (file)
@@ -43,4 +43,22 @@ public class PackageIdentification extends Identification{
     public String toString() {\r
       return getName() + " " + getVersion() + " [" + Tools.getRelativePath(getSpdFile().getPath(), Workspace.getCurrentWorkspace()) + "]";\r
     }\r
+    \r
+    public boolean equals(String packageGuid, String packageVersion) {\r
+        boolean b = false;\r
+        if (this.getGuid().equals(packageGuid)) {\r
+            b = true;\r
+            //\r
+            // Check Version\r
+            //\r
+            if (packageVersion != null) {\r
+                if (!Tools.isEmpty(packageVersion)) {\r
+                    if (!packageVersion.equals(this.getVersion())) {\r
+                        b = false;\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        return b;\r
+    }\r
 }\r
index 2fdbdd6d737c17e3cb87cd4591a1f5a9888c5de0..bc0b3d2bed5a73c7ea07c07b97f0047c2f754379 100644 (file)
@@ -40,4 +40,22 @@ public class PlatformIdentification extends Identification{
     public String toString() {\r
       return getName() + " " + getVersion() + " [" + Tools.getRelativePath(getFpdFile().getPath(), Workspace.getCurrentWorkspace()) + "]";\r
     }\r
+    \r
+    public boolean equals(String platformGuid, String platformVersion) {\r
+        boolean b = false;\r
+        if (this.getGuid().equals(platformGuid)) {\r
+            b = true;\r
+            //\r
+            // Check Version\r
+            //\r
+            if (platformVersion != null) {\r
+                if (!Tools.isEmpty(platformVersion)) {\r
+                    if (!platformVersion.equals(this.getVersion())) {\r
+                        b = false;\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        return b;\r
+    }\r
 }
\ No newline at end of file