test_class.declarator: parser = (ProcessEntityParser) EntityParserFactory.getParser(EntityType.PROCESS)
test_class.modifier: private final
test_class.original_string: private final ProcessEntityParser parser = (ProcessEntityParser) EntityParserFactory.getParser(EntityType.PROCESS);
test_class.type: ProcessEntityParser
test_class.var_name: parser
test_class.declarator: INVALID_PROCESS_XML = "/config/process/process-invalid.xml"
test_class.modifier: private
test_class.original_string: private String INVALID_PROCESS_XML = "/config/process/process-invalid.xml";
test_class.type: String
test_class.var_name: INVALID_PROCESS_XML
test_class.file: common/src/test/java/org/apache/ivory/entity/parser/ProcessEntityParserTest.java
test_class.identifier: ProcessEntityParserTest
test_class.superclass: extends AbstractTestBase
test_case.body: @Test(expectedExceptions=ValidationException.class)
  	public void testDuplicateClusterName() throws Exception {
  		Process process = parser
  				.parse((ProcessEntityParserTest.class
  						.getResourceAsStream(PROCESS_XML)));
  		process.getClusters().getClusters().add(1, process.getClusters().getClusters().get(0));
  		parser.validate(process);
  	}
test_case.class_method_signature: ProcessEntityParserTest.testDuplicateClusterName()
test_case.full_signature: @Test(expectedExceptions=ValidationException.class) public void testDuplicateClusterName()
test_case.identifier: testDuplicateClusterName
test_case.invocations: parse getResourceAsStream add getClusters getClusters get getClusters getClusters validate
test_case.modifiers: @Test(expectedExceptions=ValidationException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDuplicateClusterName()
focal_class.file: common/src/main/java/org/apache/ivory/entity/parser/ProcessEntityParser.java
focal_class.identifier: ProcessEntityParser
focal_class.class_method_signature: ProcessEntityParser.ProcessEntityParser()
focal_class.full_signature: public  ProcessEntityParser()
focal_class.identifier: ProcessEntityParser
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ProcessEntityParser()
focal_class.class_method_signature: ProcessEntityParser.validate(Process process)
focal_class.full_signature: @Override public void validate(Process process)
focal_class.identifier: validate
focal_class.modifiers: @Override public
focal_class.parameters: (Process process)
focal_class.return: void
focal_class.signature: void validate(Process process)
focal_class.class_method_signature: ProcessEntityParser.validateHDFSpaths(Process process, String clusterName)
focal_class.full_signature: private void validateHDFSpaths(Process process, String clusterName)
focal_class.identifier: validateHDFSpaths
focal_class.modifiers: private
focal_class.parameters: (Process process, String clusterName)
focal_class.return: void
focal_class.signature: void validateHDFSpaths(Process process, String clusterName)
focal_class.class_method_signature: ProcessEntityParser.getNameNode(Cluster cluster, String clusterName)
focal_class.full_signature: private String getNameNode(Cluster cluster, String clusterName)
focal_class.identifier: getNameNode
focal_class.modifiers: private
focal_class.parameters: (Cluster cluster, String clusterName)
focal_class.return: String
focal_class.signature: String getNameNode(Cluster cluster, String clusterName)
focal_class.class_method_signature: ProcessEntityParser.validateProcessValidity(Date start, Date end)
focal_class.full_signature: private void validateProcessValidity(Date start, Date end)
focal_class.identifier: validateProcessValidity
focal_class.modifiers: private
focal_class.parameters: (Date start, Date end)
focal_class.return: void
focal_class.signature: void validateProcessValidity(Date start, Date end)
focal_class.class_method_signature: ProcessEntityParser.validateDatasetName(Inputs inputs, Outputs outputs)
focal_class.full_signature: private void validateDatasetName(Inputs inputs, Outputs outputs)
focal_class.identifier: validateDatasetName
focal_class.modifiers: private
focal_class.parameters: (Inputs inputs, Outputs outputs)
focal_class.return: void
focal_class.signature: void validateDatasetName(Inputs inputs, Outputs outputs)
focal_class.class_method_signature: ProcessEntityParser.validateLateInputs(Process process)
focal_class.full_signature: private void validateLateInputs(Process process)
focal_class.identifier: validateLateInputs
focal_class.modifiers: private
focal_class.parameters: (Process process)
focal_class.return: void
focal_class.signature: void validateLateInputs(Process process)
focal_class.superclass: extends EntityParser<Process>
focal_method.body: @Override
      public void validate(Process process) throws IvoryException {
          if(process.getTimezone() == null)
              process.setTimezone(TimeZone.getTimeZone("UTC"));
  
          // check if dependent entities exists
          Set<String> clusters = new HashSet<String>();
          for (org.apache.ivory.entity.v0.process.Cluster cluster : process.getClusters().getClusters()) {
              String clusterName = cluster.getName();
  			if (!clusters.add(cluster.getName())) {
  				throw new ValidationException("Cluster: " + cluster.getName()
  						+ " is defined more than once for process: "+process.getName());
  			}
              validateEntityExists(EntityType.CLUSTER, clusterName);
              validateProcessValidity(cluster.getValidity().getStart(), cluster.getValidity().getEnd());
              validateHDFSpaths(process, clusterName);
  
              if (process.getInputs() != null) {
                  for (Input input : process.getInputs().getInputs()) {
                      validateEntityExists(EntityType.FEED, input.getFeed());
                      Feed feed = (Feed) ConfigurationStore.get().get(EntityType.FEED, input.getFeed());
                      CrossEntityValidations.validateFeedDefinedForCluster(feed, clusterName);
                      CrossEntityValidations.validateFeedRetentionPeriod(input.getStart(), feed, clusterName);
                      CrossEntityValidations.validateInstanceRange(process, input, feed);
                      if (input.getPartition() != null) {
                          CrossEntityValidations.validateInputPartition(input, feed);
                      }
                  }
              }
  
              if (process.getOutputs() != null) {
                  for (Output output : process.getOutputs().getOutputs()) {
                      validateEntityExists(EntityType.FEED, output.getFeed());
                      Feed feed = (Feed) ConfigurationStore.get().get(EntityType.FEED, output.getFeed());
                      CrossEntityValidations.validateFeedDefinedForCluster(feed, clusterName);
                      CrossEntityValidations.validateInstance(process, output, feed);
                  }
              }
          }
          validateDatasetName(process.getInputs(), process.getOutputs());
          validateLateInputs(process);
      }
focal_method.class_method_signature: ProcessEntityParser.validate(Process process)
focal_method.full_signature: @Override public void validate(Process process)
focal_method.identifier: validate
focal_method.invocations: getTimezone setTimezone getTimeZone getClusters getClusters getName add getName getName getName validateEntityExists validateProcessValidity getStart getValidity getEnd getValidity validateHDFSpaths getInputs getInputs getInputs validateEntityExists getFeed get get getFeed validateFeedDefinedForCluster validateFeedRetentionPeriod getStart validateInstanceRange getPartition validateInputPartition getOutputs getOutputs getOutputs validateEntityExists getFeed get get getFeed validateFeedDefinedForCluster validateInstance validateDatasetName getInputs getOutputs validateLateInputs
focal_method.modifiers: @Override public
focal_method.parameters: (Process process)
focal_method.return: void
focal_method.signature: void validate(Process process)