blob: 9013625e51613de4362d9dc84c23d7ddb4813b7c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.royale.test.ant.tasks.configuration;
import java.io.File;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.types.FileSet;
import org.apache.royale.test.ant.LoggingUtil;
import org.apache.royale.test.ant.tasks.types.LibraryPaths;
import org.apache.royale.test.ant.tasks.types.LoadConfig;
import org.apache.royale.test.ant.tasks.types.SourcePaths;
public class CompilationConfiguration implements StepConfiguration
{
private SourcePaths sources;
private SourcePaths testSources;
private LibraryPaths libraries;
private File royaleHome;
private String player;
private File workingDir;
public CompilationConfiguration()
{
sources = new SourcePaths();
testSources = new SourcePaths();
libraries = new LibraryPaths();
debug = false;
}
public File getRoyaleHome()
{
return royaleHome;
}
public void setRoyaleHome(File royaleHome)
{
this.royaleHome = royaleHome;
}
public void addLibrary(FileSet fileset)
{
this.libraries.add(fileset);
}
public LibraryPaths getLibraries()
{
return libraries;
}
public String getPlayer()
{
return player;
}
public void setPlayer(String player)
{
this.player = player;
}
public void addSource(FileSet fileset)
{
this.sources.add(fileset);
}
public SourcePaths getSources()
{
return sources;
}
public void addTestSource(FileSet fileset)
{
this.testSources.add(fileset);
}
public SourcePaths getTestSources()
{
return testSources;
}
public void setWorkingDir(File workingDir)
{
this.workingDir = workingDir;
}
public File getWorkingDir()
{
return workingDir;
}
public void validate() throws BuildException
{
if(!testSources.exists())
{
throw new BuildException("One of the directories specified as a 'testSource' element does not exist.");
}
if(testSources.exists() && testSources.isEmpty())
{
throw new BuildException("No test files could be found for the provided 'testSource' elements.");
}
if(!libraries.exists())
{
throw new BuildException("One of the directories specified as a 'library' element does not exist.");
}
if(libraries.exists() && libraries.isEmpty() && loadConfig == null)
{
throw new BuildException("'library' elements not specified or 'load-config' element not specified. Also possible no SWC files could be found for the provided 'library' elements.");
}
}
public void log()
{
LoggingUtil.log("Using the following settings for compilation:");
LoggingUtil.log("\tROYALE_HOME: [" + royaleHome.getAbsolutePath() + "]");
LoggingUtil.log("\tplayer: [" + player + "]");
LoggingUtil.log("\tsourceDirectories: [" + sources.getPathElements(",") + "]");
LoggingUtil.log("\ttestSourceDirectories: [" + testSources.getPathElements(",") + "]");
LoggingUtil.log("\tlibraries: [" + libraries.getPathElements(",") + "]");
}
private boolean debug;
public boolean getDebug()
{
return debug;
}
public void setDebug(boolean value)
{
debug = value;
}
private LoadConfig loadConfig;
public void setLoadConfig(LoadConfig loadconfig)
{
loadConfig = loadconfig;
}
public LoadConfig getLoadConfig()
{
return loadConfig;
}
}