import java.util.List;\r
import java.util.Map;\r
\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
/**\r
* Gyökér osztály.\r
*/\r
public class JobTemplate extends AST {\r
+ private static final Logger logger = LogManager.getLogger(JobTemplate.class);\r
\r
private CommandSequence commandSequence = null;\r
private DeclarationSequence declarationSequence = null;\r
List<String> inputvariables = new ArrayList<>();\r
List<String> inputparameters = new ArrayList<>();\r
List<String> errors = new ArrayList<>();\r
+\r
if (declarationSequence != null) {\r
for (Declaration declaration : declarationSequence.getDeclarations()) {\r
- if (declaration instanceof ParameterDeclaration)\r
+ if (declaration instanceof ParameterDeclaration) {\r
parameters.put(declaration.getName(), declaration.getType());\r
- if (declaration instanceof VariableDeclaration)\r
+ }\r
+ if (declaration instanceof VariableDeclaration) {\r
variables.put(declaration.getName(), declaration.getType());\r
+ }\r
}\r
}\r
\r
if (commandSequence != null) {\r
for (Command command : commandSequence.getCommands()) {\r
if (command instanceof CallJobStepCommand) {\r
+\r
ParameterSequence inputParameterSequence = ((CallJobStepCommand) command)\r
.getInputParameterSequence();\r
if (inputParameterSequence != null) {\r
for (Parameter parameter : inputParameterSequence.getParameters()) {\r
- if (!(parameter instanceof InputParameter))\r
+ if (!(parameter instanceof InputParameter)) {\r
throw new Exception(((CallJobStepCommand) command).getType()\r
+ ": class cast problem with input parameter name " + parameter.toString());\r
+ }\r
\r
Expression expression = ((InputParameter) parameter).getExpression();\r
- if (expression instanceof VariableExpression) {\r
- if (!inputvariables.contains(expression.getName()))\r
- inputvariables.add(expression.getName());\r
- }\r
- if (expression instanceof ParameterExpression) {\r
- if (!inputparameters.contains(expression.getName()))\r
- inputparameters.add(expression.getName());\r
+ if (expression != null) {\r
+ if (expression instanceof VariableExpression) {\r
+ if (commandSequence.getCommands().get(0).equals(command)) {\r
+ // Egy paraméter tévesen változóként lett hivatkozva\r
+ if (parameters.containsKey(expression.getName())) {\r
+ if (errors.isEmpty()) {\r
+ errors.add(\r
+ String.format("Parameter %s is used as variable.", parameter));\r
+ }\r
+ }\r
+ }\r
+ if (!inputvariables.contains(expression.getName()))\r
+ inputvariables.add(expression.getName());\r
+ }\r
+ if (expression instanceof ParameterExpression) {\r
+ if (!inputparameters.contains(expression.getName()))\r
+ inputparameters.add(expression.getName());\r
+ }\r
}\r
}\r
}\r
+\r
ParameterSequence outputParameterSequence = ((CallJobStepCommand) command)\r
.getOutputParameterSequence();\r
if (outputParameterSequence != null) {\r
throw new Exception(((CallJobStepCommand) command).getType()\r
+ ": class cast problem with output parameter name " + parameter.toString());\r
VariableName name = ((OutputParameter) parameter).getVariableName();\r
- if (!inputvariables.contains(name.getName()))\r
- inputvariables.add(name.getName());\r
+ if (name != null) {\r
+ if (!inputvariables.contains(name.getName()))\r
+ inputvariables.add(name.getName());\r
+ } else {\r
+ if (errors.isEmpty()) {\r
+ errors.add("A " + ((CallJobStepCommand) command).getType()\r
+ + "folyamat kimeneti paramétere hibásan lett megadva a template fájlban!");\r
+ }\r
+ }\r
}\r
}\r
}\r
}\r
\r
- for (String input : inputvariables) {\r
- if (!variables.containsKey(input))\r
- errors.add(String.format("Variable declaration missing for '%s'.", input));\r
+ for (String inputvariable : inputvariables) {\r
+ if (!variables.containsKey(inputvariable)) {\r
+ if (errors.isEmpty()) {\r
+ errors.add(String.format("Variable declaration missing for '%s'.", inputvariable));\r
+ }\r
+ }\r
}\r
- for (String input : inputparameters) {\r
- if (!parameters.containsKey(input))\r
- errors.add(String.format("Parameter declaration missing for '%s'.", input));\r
+ for (String inputparameter : inputparameters) {\r
+ if (!parameters.containsKey(inputparameter)) {\r
+ if (errors.isEmpty()) {\r
+ errors.add(String.format("Parameter declaration missing for '%s'.", inputparameter));\r
+ }\r
+ }\r
}\r
-\r
}\r
\r
if (errors.size() > 0) {\r
errors.forEach(e -> sb.append(e));\r
throw new Exception("JobTemplate validation error: " + sb.toString());\r
}\r
+\r
return errors;\r
}\r
\r