package org.cloudcoder.builder2.commandrunner;

import org.cloudcoder.app.shared.model.TestCase;
import org.cloudcoder.builder2.model.BuilderSubmission;
import org.cloudcoder.builder2.model.CommandInput;
import org.cloudcoder.builder2.model.IBuildStep;
import org.cloudcoder.builder2.model.InternalBuilderException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Create a {@link CommandInput} with the input from each {@link TestCase}.
 * 
 * @author David Hovemeyer
 */
public class CreateCommandInputsForEachTestCaseBuildStep implements IBuildStep {

	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public void execute(BuilderSubmission submission) {
		TestCase[] testCaseList = submission.getArtifact(TestCase[].class);
		if (testCaseList == null) {
			throw new InternalBuilderException(this.getClass(), "No TestCase list");
		}
		
		CommandInput[] commandInputList = new CommandInput[testCaseList.length];
		for (int i = 0; i < testCaseList.length; i++) {
			commandInputList[i] = new CommandInput(testCaseList[i].getInput());
		}
		submission.addArtifact(commandInputList);
		
		logger.debug("Added {} CommandInputs", commandInputList.length);
		
	}

}

@@ -1,8 +1,878 @@
+// CloudCoder - a web-based pedagogical programming environment%0A// Copyright (C) 2011-2012, Jaime Spacco %3Cjspacco@knox.edu%3E%0A// Copyright (C) 2011-2012, David H. Hovemeyer %3Cdavid.hovemeyer@gmail.com%3E%0A//%0A// This program is free software: you can redistribute it and/or modify%0A// it under the terms of the GNU Affero General Public License as published by%0A// the Free Software Foundation, either version 3 of the License, or%0A// (at your option) any later version.%0A//%0A// This program is distributed in the hope that it will be useful,%0A// but WITHOUT ANY WARRANTY; without even the implied warranty of%0A// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the%0A// GNU Affero General Public License for more details.%0A//%0A// You should have received a copy of the GNU Affero General Public License%0A// along with this program.  If not, see %3Chttp://www.gnu.org/licenses/%3E.%0A%0A
 package 

add license/copyright header