blob: 725becff4608a17882eb079b8c02ec88b81052d6 [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.launcher.commands.player;
import java.io.File;
/**
* Abstracts the assembly of a command-line call to the Flash player for all platforms.
*/
public class FlashPlayerCommand extends DefaultPlayerCommand
{
public static final String TRUST_FILENAME = "royaleUnit.cfg";
private boolean localTrusted;
public FlashPlayerCommand()
{
super();
}
@Override
public File getFileToExecute()
{
return getSwf();
}
public void setLocalTrusted(boolean localTrusted)
{
this.localTrusted = localTrusted;
}
public boolean isLocalTrusted()
{
return localTrusted;
}
@Override
public void prepare()
{
//Determine if we have a URL value.
//This should be populated by setting the 'swf' property equal to a remote http hosted SWF.
if(getUrl() != null && getUrl() != "")
{
//setup the command line now for remote URL
getCommandLine().setExecutable(getDefaults().getOpenCommand());
getCommandLine().addArguments(getDefaults().getOpenSystemArguments());
getCommandLine().addArguments(new String[]{getUrl()});
//There is no need to add to the local trust because we're going to be loading the swf from a remote location.
}
//Determine if we have a local SWF to run.
//This should be populated by setting the 'swf' property equal to a swf on your local file system.
else if(getSwf() != null) {
//setup the command line now with local SWF file location
getCommandLine().setExecutable(getDefaults().getOpenCommand());
getCommandLine().addArguments(getDefaults().getOpenSystemArguments());
getCommandLine().addArguments(new String[]{getFileToExecute().getAbsolutePath()});
//handle local trust for locally stored swf file
TrustFile trustFile = new TrustFile(getProject(), getDefaults().getFlashPlayerUserTrustDirectory(), getDefaults().getFlashPlayerGlobalTrustDirectory());
if (localTrusted)
{
trustFile.add(getSwf());
}
else
{
trustFile.remove(getSwf());
}
}
}
}