+++ /dev/null
-/** @file\r
-This file is to define ModuleIdentification class.\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
-package org.tianocore.build.id;\r
-\r
-import java.io.File;\r
-\r
-/**\r
- This class is used to identify a module with Module Guid, Module Version, \r
- Package Guid, Package Version. \r
-\r
- @since GenBuild 1.0\r
-**/\r
-public class ModuleIdentification extends Identification {\r
- \r
- private PackageIdentification packageId;\r
- \r
- private File msaFile;\r
- \r
- private String moduleType;\r
- \r
- private boolean isLibrary = false;\r
-\r
- private boolean isBinary = false;\r
-\r
- private String constructor = "";\r
-\r
- private String destructor = "";\r
-\r
- /**\r
- @param guid Guid\r
- @param version Version\r
- **/\r
- public ModuleIdentification(String guid, String version){\r
- super(guid, version);\r
- }\r
- \r
- /**\r
- @param guid Guid\r
- @param version Version\r
- @param packageId Package Identification\r
- **/\r
- public ModuleIdentification(String guid, String version, PackageIdentification packageId){\r
- super(guid, version);\r
- this.packageId = packageId;\r
- }\r
- \r
- /**\r
- @param name Name\r
- @param guid Guid\r
- @param version Version\r
- **/\r
- public ModuleIdentification(String name, String guid, String version){\r
- super(name, guid, version);\r
- }\r
- \r
- /**\r
- @param name Name\r
- @param guid Guid\r
- @param version Version\r
- @param packageId PackageIdentification\r
- **/\r
- public ModuleIdentification(String name, String guid, String version, PackageIdentification packageId){\r
- super(name, guid, version);\r
- this.packageId = packageId;\r
- }\r
- \r
- /**\r
- @return boolean is this module is library\r
- **/\r
- public boolean isLibrary() {\r
- return isLibrary;\r
- }\r
-\r
- /**\r
- @param isLibrary \r
- **/\r
- public void setLibrary(boolean isLibrary) {\r
- this.isLibrary = isLibrary;\r
- }\r
-\r
- /**\r
- @return boolean is this module is binary\r
- **/\r
- public boolean isBinary() {\r
- return isBinary;\r
- }\r
-\r
- /**\r
- @param isBinary\r
- **/\r
- public void setBinary(boolean isBinary) {\r
- this.isBinary = isBinary;\r
- }\r
-\r
- /**\r
- @return MSA File\r
- **/\r
- public File getMsaFile() {\r
- return msaFile;\r
- }\r
- \r
- /**\r
- @return Module relative path to package\r
- **/\r
- public String getModuleRelativePath() {\r
- if (msaFile.getParent().length() == packageId.getPackageDir().length()) {\r
- return ".";\r
- }\r
- return msaFile.getParent().substring(packageId.getPackageDir().length() + 1);\r
- }\r
-\r
- /**\r
- @param msaFile Set Msa File\r
- **/\r
- public void setMsaFile(File msaFile) {\r
- this.msaFile = msaFile;\r
- }\r
- \r
- public boolean equals(Object obj) {\r
- if (obj instanceof ModuleIdentification) {\r
- ModuleIdentification id = (ModuleIdentification)obj;\r
- if (guid.equalsIgnoreCase(id.getGuid()) && packageId.equals(id.getPackage())) {\r
- if (version == null || id.version == null) {\r
- return true;\r
- }\r
- else if (version.trim().equalsIgnoreCase("") || id.version.trim().equalsIgnoreCase("")){\r
- return true;\r
- }\r
- else if (version.equalsIgnoreCase(id.version)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- else {\r
- return super.equals(obj);\r
- }\r
- }\r
- \r
- public String toString() {\r
- String nameString;\r
- String versionString;\r
- String packageString;\r
-\r
- if (name != null && name != "") {\r
- nameString = name;\r
- } else {\r
- if (guid != null && guid != "") {\r
- nameString = guid;\r
- } else {\r
- nameString = "UNKNOWN";\r
- }\r
- }\r
-\r
- if (version != null) {\r
- versionString = version;\r
- } else {\r
- versionString = ""; \r
- }\r
-\r
- if (packageId != null) {\r
- packageString = packageId.toString();\r
- } else {\r
- packageString = "Package [UNKNOWN]";\r
- }\r
-\r
- return "Module [" + nameString + versionString + "] in " + packageString; \r
- }\r
-\r
- /**\r
- @param packageId set package identification\r
- **/\r
- public void setPackage(PackageIdentification packageId) {\r
- this.packageId = packageId;\r
- }\r
-\r
- /**\r
- @return get package identification\r
- **/\r
- public PackageIdentification getPackage() {\r
- return packageId;\r
- }\r
-\r
- /**\r
- @return get module type\r
- **/\r
- public String getModuleType() {\r
- return moduleType;\r
- }\r
-\r
- /**\r
- @param moduleType set module type\r
- **/\r
- public void setModuleType(String moduleType) {\r
- this.moduleType = moduleType;\r
- }\r
-\r
- /**\r
- @return String The module name\r
- **/\r
- public String getName() {\r
- return name;\r
- }\r
-\r
- /**\r
- @return boolean\r
- **/\r
- public boolean hasConstructor() {\r
- return constructor != "";\r
- }\r
-\r
- /**\r
- @return boolean\r
- */\r
- public boolean hasDestructor() {\r
- return destructor != "";\r
- }\r
-\r
- /**\r
- Set the constructor function name if this module is a library\r
-\r
- @param name\r
- */\r
- public void setConstructor(String name) {\r
- if (name != null) {\r
- constructor = name;\r
- }\r
- }\r
-\r
- /**\r
- Set the destructor function name if this module is a library\r
-\r
- @param name\r
- */\r
- public void setDestructor(String name) {\r
- if (name != null) {\r
- destructor = name;\r
- }\r
- }\r
-}\r