import org.apache.xmlbeans.XmlException;\r
import org.apache.xmlbeans.XmlObject;\r
import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions;\r
+import org.tianocore.PcdBuildDefinitionDocument;\r
import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.build.exception.PlatformPcdPreprocessBuildException;\r
import org.tianocore.build.fpd.FpdParserTask;\r
import org.tianocore.build.global.GlobalData;\r
import org.tianocore.build.id.FpdModuleIdentification;\r
import org.tianocore.pcd.action.ActionMessage;\r
-import org.tianocore.pcd.entity.ModulePcdInfoFromFpd;\r
+import org.tianocore.pcd.action.PlatformPcdPreprocessAction;\r
import org.tianocore.pcd.entity.MemoryDatabaseManager;\r
+import org.tianocore.pcd.entity.ModulePcdInfoFromFpd;\r
import org.tianocore.pcd.entity.Token;\r
import org.tianocore.pcd.entity.UsageIdentification;\r
import org.tianocore.pcd.exception.EntityException;\r
-import org.tianocore.pcd.action.PlatformPcdPreprocessAction;\r
+import org.tianocore.pcd.exception.PlatformPcdPreprocessException;\r
\r
/**\r
This action class is to collect PCD information from MSA, SPD, FPD xml file.\r
from buildAction or UIAction.\r
**/\r
public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreprocessAction {\r
- ///\r
- /// Workspacepath hold the workspace information.\r
- ///\r
- private String workspacePath;\r
-\r
///\r
/// FPD file is the root file.\r
///\r
///\r
private PlatformSurfaceAreaDocument fpdDocInstance;\r
\r
- /**\r
- Set WorkspacePath parameter for this action class.\r
-\r
- @param workspacePath parameter for this action\r
- **/\r
- public void setWorkspacePath(String workspacePath) {\r
- this.workspacePath = workspacePath;\r
- }\r
-\r
/**\r
Set action message level for CollectPcdAction tool.\r
\r
/**\r
Common function interface for outer.\r
\r
- @param workspacePath The path of workspace of current build or analysis.\r
- @param fpdFilePath The fpd file path of current build or analysis.\r
- @param messageLevel The message level for this Action.\r
+ @param fpdFilePath The fpd file path of current build or analysis.\r
+ @param messageLevel The message level for this Action.\r
\r
- @throws Exception The exception of this function. Because it can *not* be predict\r
- where the action class will be used. So only Exception can be throw.\r
+ @throws PlatformPreprocessBuildException \r
+ The exception of this function. Because it can *not* be predict\r
+ where the action class will be used. So only Exception can be throw.\r
\r
**/\r
- public void perform(String workspacePath, String fpdFilePath,\r
- int messageLevel) throws Exception {\r
- setWorkspacePath(workspacePath);\r
+ public void perform(String fpdFilePath, int messageLevel) \r
+ throws PlatformPcdPreprocessBuildException {\r
setFPDFilePath(fpdFilePath);\r
setActionMessageLevel(messageLevel);\r
checkParameter();\r
@throws EntityException Exception indicate failed to execute this action.\r
\r
**/\r
- public void execute() throws EntityException {\r
- MemoryDatabaseManager pcdDbManager = null;\r
+ public void execute() throws PlatformPcdPreprocessBuildException {\r
+ String errorMessageHeader = "Fail to initialize Pcd memory database for building. Because:";\r
+ String errorsForPreprocess = null;\r
\r
//\r
// Get memoryDatabaseManager instance from GlobalData.\r
- // The memoryDatabaseManager should be initialized for whatever build\r
- // tools or wizard tools\r
+ // The memoryDatabaseManager should be initialized as static variable\r
+ // in some Pre-process class.\r
//\r
- if((pcdDbManager = GlobalData.getPCDMemoryDBManager()) == null) {\r
- throw new EntityException("The instance of PCD memory database manager is null");\r
- }\r
-\r
- this.setPcdDbManager(pcdDbManager);\r
+ setPcdDbManager(GlobalData.getPCDMemoryDBManager());\r
\r
//\r
// Collect all PCD information defined in FPD file.\r
// Evenry token defind in FPD will be created as an token into\r
// memory database.\r
//\r
- initPcdMemoryDbWithPlatformInfo();\r
+ try {\r
+ initPcdMemoryDbWithPlatformInfo();\r
+ } catch (PlatformPcdPreprocessException exp) {\r
+ throw new PlatformPcdPreprocessBuildException(errorMessageHeader + exp.getMessage());\r
+ }\r
+ errorsForPreprocess = this.getErrorString();\r
+ if (errorsForPreprocess != null) {\r
+ throw new PlatformPcdPreprocessBuildException(errorMessageHeader + "\r\n" + errorsForPreprocess);\r
+ }\r
\r
//\r
// Generate for PEI, DXE PCD DATABASE's definition and initialization.\r
//\r
- genPcdDatabaseSourceCode ();\r
-\r
+ try {\r
+ genPcdDatabaseSourceCode ();\r
+ } catch (EntityException exp) {\r
+ throw new PlatformPcdPreprocessBuildException(errorMessageHeader + exp.getMessage());\r
+ }\r
}\r
\r
/**\r
\r
@param guidCName Guid CName string.\r
\r
- @return String[] Guid information from SPD file.\r
+ @return String Guid information from SPD file.\r
+ @throws PlatformPcdPreprocessException\r
+ Fail to get Guid information from SPD file.\r
**/\r
- public String[] getGuidInfoFromSpd(String guidCName) throws EntityException {\r
- String[] tokenSpaceStrRet = null;\r
+ public String getGuidInfoFromSpd(String guidCName) throws PlatformPcdPreprocessException {\r
+ String tokenSpaceStrRet = null;\r
try {\r
tokenSpaceStrRet = GlobalData.getGuidInfoFromCname(guidCName);\r
} catch ( Exception e ) {\r
- throw new EntityException ("Failed get Guid CName " + guidCName + "from SPD file!");\r
+ throw new PlatformPcdPreprocessException ("Failed get Guid CName " + guidCName + "from SPD file!");\r
}\r
return tokenSpaceStrRet;\r
}\r
/**\r
This function generates source code for PCD Database.\r
\r
- @param void\r
@throws EntityException If the token does *not* exist in memory database.\r
\r
**/\r
\r
This function maybe provided by some Global class.\r
\r
- @return List<ModuleInfo> the component array.\r
+ @return List<ModuleInfo> the component array.\r
+ @throws PlatformPcdPreprocessException get all modules in <ModuleSA> in FPD file.\r
\r
- */\r
+ **/\r
public List<ModulePcdInfoFromFpd> getComponentsFromFpd()\r
- throws EntityException {\r
+ throws PlatformPcdPreprocessException {\r
List<ModulePcdInfoFromFpd> allModules = new ArrayList<ModulePcdInfoFromFpd>();\r
Map<FpdModuleIdentification, XmlObject> pcdBuildDefinitions = null;\r
UsageIdentification usageId = null;\r
id.getArch(),\r
id.getModule().getVersion(),\r
id.getModule().getModuleType());\r
- allModules.add(new ModulePcdInfoFromFpd(usageId, pcdBuildDefinitions.get(id)));\r
+ allModules.add(\r
+ new ModulePcdInfoFromFpd(\r
+ usageId, \r
+ ((PcdBuildDefinitionDocument)pcdBuildDefinitions.get(id)).getPcdBuildDefinition()));\r
}\r
return allModules;\r
}\r
Override function: Verify the datum value according its datum size and datum type, this\r
function maybe moved to FPD verification tools in future.\r
\r
- @param cName\r
- @param moduleName\r
- @param datum\r
- @param datumType\r
- @param maxDatumSize\r
+ @param cName The token name\r
+ @param moduleName The module who use this PCD token\r
+ @param datum The PCD's datum\r
+ @param datumType The PCD's datum type\r
+ @param maxDatumSize The max size for PCD's Datum.\r
\r
- @return String\r
+ @return String exception strings.\r
*/\r
- /***/\r
public String verifyDatum(String cName,\r
String moduleName,\r
String datum,\r
Token.DATUM_TYPE datumType,\r
int maxDatumSize) {\r
- String exceptionString = null;\r
- int value;\r
- BigInteger value64;\r
- String subStr;\r
- int index;\r
-\r
- if (moduleName == null) {\r
- moduleName = "section <DynamicPcdBuildDefinitions>";\r
- } else {\r
- moduleName = "module " + moduleName;\r
- }\r
-\r
- if (maxDatumSize == 0) {\r
- exceptionString = String.format("[FPD file error] You maybe miss <MaxDatumSize> for PCD %s in %s",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
-\r
- switch (datumType) {\r
- case UINT8:\r
- if (maxDatumSize != 1) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is UINT8, but datum size is %d, they are not matched!",\r
- cName,\r
- moduleName,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
-\r
- if (datum != null) {\r
- try {\r
- value = Integer.decode(datum);\r
- } catch (NumberFormatException nfeExp) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not valid "+\r
- "digital format of UINT8",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
- if (value > 0xFF) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s exceed"+\r
- " the max size of UINT8 - 0xFF",\r
- cName,\r
- moduleName,\r
- datum);\r
- return exceptionString;\r
- }\r
- }\r
- break;\r
- case UINT16:\r
- if (maxDatumSize != 2) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is UINT16, but datum size is %d, they are not matched!",\r
- cName,\r
- moduleName,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
- if (datum != null) {\r
- try {\r
- value = Integer.decode(datum);\r
- } catch (NumberFormatException nfeExp) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is "+\r
- "not valid digital of UINT16",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
- if (value > 0xFFFF) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s "+\r
- "which exceed the range of UINT16 - 0xFFFF",\r
- cName,\r
- moduleName,\r
- datum);\r
- return exceptionString;\r
- }\r
- }\r
- break;\r
- case UINT32:\r
- if (maxDatumSize != 4) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is UINT32, but datum size is %d, they are not matched!",\r
- cName,\r
- moduleName,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
-\r
- if (datum != null) {\r
- try {\r
- if (datum.length() > 2) {\r
- if ((datum.charAt(0) == '0') &&\r
- ((datum.charAt(1) == 'x') || (datum.charAt(1) == 'X'))){\r
- subStr = datum.substring(2, datum.length());\r
- value64 = new BigInteger(subStr, 16);\r
- } else {\r
- value64 = new BigInteger(datum);\r
- }\r
- } else {\r
- value64 = new BigInteger(datum);\r
- }\r
- } catch (NumberFormatException nfeExp) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not "+\r
- "valid digital of UINT32",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
-\r
- if (value64.bitLength() > 32) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s which "+\r
- "exceed the range of UINT32 - 0xFFFFFFFF",\r
- cName,\r
- moduleName,\r
- datum);\r
- return exceptionString;\r
- }\r
- }\r
- break;\r
- case UINT64:\r
- if (maxDatumSize != 8) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is UINT64, but datum size is %d, they are not matched!",\r
- cName,\r
- moduleName,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
-\r
- if (datum != null) {\r
- try {\r
- if (datum.length() > 2) {\r
- if ((datum.charAt(0) == '0') &&\r
- ((datum.charAt(1) == 'x') || (datum.charAt(1) == 'X'))){\r
- subStr = datum.substring(2, datum.length());\r
- value64 = new BigInteger(subStr, 16);\r
- } else {\r
- value64 = new BigInteger(datum);\r
- }\r
- } else {\r
- value64 = new BigInteger(datum);\r
- }\r
- } catch (NumberFormatException nfeExp) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not valid"+\r
- " digital of UINT64",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
-\r
- if (value64.bitLength() > 64) {\r
- exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s "+\r
- "exceed the range of UINT64 - 0xFFFFFFFFFFFFFFFF",\r
- cName,\r
- moduleName,\r
- datum);\r
- return exceptionString;\r
- }\r
- }\r
- break;\r
- case BOOLEAN:\r
- if (maxDatumSize != 1) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is BOOLEAN, but datum size is %d, they are not matched!",\r
- cName,\r
- moduleName,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
-\r
- if (datum != null) {\r
- if (!(datum.equalsIgnoreCase("TRUE") ||\r
- datum.equalsIgnoreCase("FALSE"))) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
- "is BOOELAN, but value is not 'true'/'TRUE' or 'FALSE'/'false'",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
-\r
- }\r
- break;\r
- case POINTER:\r
- if (datum == null) {\r
- break;\r
- }\r
-\r
- char ch = datum.charAt(0);\r
- int start, end;\r
- String strValue;\r
- //\r
- // For void* type PCD, only three datum is support:\r
- // 1) Unicode: string with start char is "L"\r
- // 2) Ansci: String start char is ""\r
- // 3) byte array: String start char "{"\r
- //\r
- if (ch == 'L') {\r
- start = datum.indexOf('\"');\r
- end = datum.lastIndexOf('\"');\r
- if ((start > end) ||\r
- (end > datum.length())||\r
- ((start == end) && (datum.length() > 0))) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID* and datum is "+\r
- "a UNICODE string because start with L\", but format maybe"+\r
- "is not right, correct UNICODE string is L\"...\"!",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
-\r
- strValue = datum.substring(start + 1, end);\r
- if ((strValue.length() * 2) > maxDatumSize) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is "+\r
- "a UNICODE string, but the datum size is %d exceed to <MaxDatumSize> : %d",\r
- cName,\r
- moduleName,\r
- strValue.length() * 2,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
- } else if (ch == '\"'){\r
- start = datum.indexOf('\"');\r
- end = datum.lastIndexOf('\"');\r
- if ((start > end) ||\r
- (end > datum.length())||\r
- ((start == end) && (datum.length() > 0))) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID* and datum is "+\r
- "a ANSCII string because start with \", but format maybe"+\r
- "is not right, correct ANSIC string is \"...\"!",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
- strValue = datum.substring(start + 1, end);\r
- if ((strValue.length()) > maxDatumSize) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is "+\r
- "a ANSCI string, but the datum size is %d which exceed to <MaxDatumSize> : %d",\r
- cName,\r
- moduleName,\r
- strValue.length(),\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
- } else if (ch =='{') {\r
- String[] strValueArray;\r
-\r
- start = datum.indexOf('{');\r
- end = datum.lastIndexOf('}');\r
- strValue = datum.substring(start + 1, end);\r
- strValue = strValue.trim();\r
- if (strValue.length() == 0) {\r
- exceptionString = String.format ("[FPD file error] The datum type of PCD %s in %s is VOID*, and "+\r
- "it is byte array in fact, but '{}' is not valid for NULL datam but"+\r
- " need use '{0}'",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
- strValueArray = strValue.split(",");\r
- for (index = 0; index < strValueArray.length; index ++) {\r
- try{\r
- value = Integer.decode(strValueArray[index].trim());\r
- } catch (NumberFormatException nfeEx) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and "+\r
- "it is byte array in fact. For every byte in array should be a valid"+\r
- "byte digital, but element %s is not a valid byte digital!",\r
- cName,\r
- moduleName,\r
- strValueArray[index]);\r
- return exceptionString;\r
- }\r
- if (value > 0xFF) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, "+\r
- "it is byte array in fact. But the element of %s exceed the byte range",\r
- cName,\r
- moduleName,\r
- strValueArray[index]);\r
- return exceptionString;\r
- }\r
- }\r
-\r
- if (strValueArray.length > maxDatumSize) {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is byte"+\r
- "array, but the number of bytes is %d which exceed to <MaxDatumSzie> : %d!",\r
- cName,\r
- moduleName,\r
- strValueArray.length,\r
- maxDatumSize);\r
- return exceptionString;\r
- }\r
- } else {\r
- exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*. For VOID* type, you have three format choise:\n "+\r
- "1) UNICODE string: like L\"xxxx\";\r\n"+\r
- "2) ANSIC string: like \"xxx\";\r\n"+\r
- "3) Byte array: like {0x2, 0x45, 0x23}\r\n"+\r
- "But the datum in seems does not following above format!",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
- break;\r
- default:\r
- exceptionString = String.format("[FPD file error] For PCD entry %s in %s, datum type is unknown, it should be one of "+\r
- "UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN",\r
- cName,\r
- moduleName);\r
- return exceptionString;\r
- }\r
+ //\r
+ // In building system, datum should not be checked, the checking work\r
+ // should be done by wizard tools or PCD verification tools.\r
+ // \r
return null;\r
}\r
\r
**/\r
public DynamicPcdBuildDefinitions.PcdBuildData getDynamicInfoFromFpd(Token token,\r
String moduleName)\r
- throws EntityException {\r
+ throws PlatformPcdPreprocessException {\r
int index = 0;\r
String exceptionString = null;\r
String dynamicPrimaryKey = null;\r
DynamicPcdBuildDefinitions dynamicPcdBuildDefinitions = null;\r
List<DynamicPcdBuildDefinitions.PcdBuildData> dynamicPcdBuildDataArray = null;\r
- String[] tokenSpaceStrRet = null;\r
+ String tokenSpaceStrRet = null;\r
\r
//\r
// If FPD document is not be opened, open and initialize it.\r
try {\r
fpdDocInstance = (PlatformSurfaceAreaDocument)XmlObject.Factory.parse(new File(fpdFilePath));\r
} catch(IOException ioE) {\r
- throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());\r
+ throw new PlatformPcdPreprocessException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());\r
} catch(XmlException xmlE) {\r
- throw new EntityException("Can't parse the FPD xml fle:" + fpdFilePath + "\n" + xmlE.getMessage());\r
+ throw new PlatformPcdPreprocessException("Can't parse the FPD xml fle:" + fpdFilePath + "\n" + xmlE.getMessage());\r
}\r
}\r
\r
"PCD entry %s in module %s!",\r
token.cName,\r
moduleName);\r
- throw new EntityException(exceptionString);\r
+ putError(exceptionString);\r
+ return null;\r
}\r
\r
dynamicPcdBuildDataArray = dynamicPcdBuildDefinitions.getPcdBuildDataList();\r
for (index = 0; index < dynamicPcdBuildDataArray.size(); index ++) {\r
- try {\r
- tokenSpaceStrRet = GlobalData.getGuidInfoFromCname(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuidCName());\r
- } catch (Exception e) {\r
- throw new EntityException ("Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName());\r
- }\r
+ tokenSpaceStrRet = getGuidInfoFromSpd(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuidCName());\r
\r
if (tokenSpaceStrRet == null) {\r
- throw new EntityException ("Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName());\r
+ exceptionString = "Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName();\r
+ putError(exceptionString);\r
+ continue;\r
}\r
\r
dynamicPrimaryKey = Token.getPrimaryKeyString(dynamicPcdBuildDataArray.get(index).getCName(),\r
- tokenSpaceStrRet[1]);\r
+ tokenSpaceStrRet);\r
if (dynamicPrimaryKey.equalsIgnoreCase(token.getPrimaryKeyString())) {\r
return dynamicPcdBuildDataArray.get(index);\r
}\r
/**\r
Override function: get all <DynamicPcdBuildDefinition> from FPD file.\r
\r
- @return List<DynamicPcdBuildDefinitions.PcdBuildData>\r
+ @return List<DynamicPcdBuildDefinitions.PcdBuildData> All DYNAMIC PCD list in <DynamicPcdBuildDefinitions> in FPD file.\r
+ @throws PlatformPcdPreprocessBuildException Failure to get dynamic information list.\r
+\r
**/\r
public List<DynamicPcdBuildDefinitions.PcdBuildData>\r
getAllDynamicPcdInfoFromFpd()\r
- throws EntityException {\r
+ throws PlatformPcdPreprocessException {\r
DynamicPcdBuildDefinitions dynamicPcdBuildDefinitions = null;\r
\r
//\r
try {\r
fpdDocInstance = (PlatformSurfaceAreaDocument)XmlObject.Factory.parse(new File(fpdFilePath));\r
} catch(IOException ioE) {\r
- throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());\r
+ throw new PlatformPcdPreprocessException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());\r
} catch(XmlException xmlE) {\r
- throw new EntityException("Can't parse the FPD xml fle:" + fpdFilePath + "\n" + xmlE.getMessage());\r
+ throw new PlatformPcdPreprocessException("Can't parse the FPD xml fle:" + fpdFilePath + "\n" + xmlE.getMessage());\r
}\r
}\r
\r
dynamicPcdBuildDefinitions = fpdDocInstance.getPlatformSurfaceArea().getDynamicPcdBuildDefinitions();\r
if (dynamicPcdBuildDefinitions == null) {\r
+ putError("There is no <DynamicPcdBuildDefinitions> in FPD file!");\r
return null;\r
}\r
\r
/**\r
check parameter for this action.\r
\r
- @throws EntityException Bad parameter.\r
+ @throws PlatformPcdPreprocessBuildException Bad parameter.\r
**/\r
- private void checkParameter() throws EntityException {\r
+ private void checkParameter() throws PlatformPcdPreprocessBuildException {\r
File file = null;\r
\r
- if((fpdFilePath == null) ||(workspacePath == null)) {\r
- throw new EntityException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
+ if (fpdFilePath == null) {\r
+ throw new PlatformPcdPreprocessBuildException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
}\r
\r
- if(fpdFilePath.length() == 0 || workspacePath.length() == 0) {\r
- throw new EntityException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
- }\r
-\r
- file = new File(workspacePath);\r
- if(!file.exists()) {\r
- throw new EntityException("WorkpacePath " + workspacePath + " does not exist!");\r
+ if (fpdFilePath.length() == 0) {\r
+ throw new PlatformPcdPreprocessBuildException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
}\r
\r
file = new File(fpdFilePath);\r
\r
if(!file.exists()) {\r
- throw new EntityException("FPD File " + fpdFilePath + " does not exist!");\r
+ throw new PlatformPcdPreprocessBuildException("FPD File " + fpdFilePath + " does not exist!");\r
}\r
}\r
\r
\r
@param argv parameter from command line\r
**/\r
- public static void main(String argv[]) throws EntityException {\r
+ public static void main(String argv[]) throws PlatformPcdPreprocessBuildException {\r
PlatformPcdPreprocessActionForBuilding ca = new PlatformPcdPreprocessActionForBuilding();\r
String projectDir = "x:/edk2";\r
- ca.setWorkspacePath(projectDir);\r
ca.setFPDFilePath(projectDir + "/EdkNt32Pkg/Nt32.fpd");\r
ca.setActionMessageLevel(ActionMessage.MAX_MESSAGE_LEVEL);\r
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",\r