
org.apache.royale.compiler.internal.config.RuntimeSharedLibraryPathInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of compiler-common Show documentation
Show all versions of compiler-common Show documentation
The Apache Royale Compiler Common classes
The newest version!
/*
*
* 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.compiler.internal.config;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Capture the information in one argument specifing
* -runtime-shared-libraries-path information.
*/
public class RuntimeSharedLibraryPathInfo
{
/**
* The extension given to a signed RLS that is assumed to be signed.
* Unsigned RSLs should use the standard "swf" extension.
*/
public static final String SIGNED_RSL_URL_EXTENSION = "swz";
public static final String SIGNED_RSL_URL_DOT_EXTENSION = "." + SIGNED_RSL_URL_EXTENSION;
// path to swc to link against, this is logically added
// -external-library-path option
private String swcPath;
private File swcVf; // the swc's virtual file
// rsls in the order to load. The first if the primary rsl, the
// others are failover rsls.
private List rslURLs;
// policy file urls, optional. The first in the list if applies to the
// first rsl in _rslURLs. The second in the list applies to the second
// in _rslURLs and so on. If there are more policy file urls than rsl
// urls,
// then display a warning.
private List policyFileURLs;
//
// List of type Boolean. Entry i in this list tells if entry i in the list
// given by getRSLURLs() is targeting a signed or unsigned rsl.
//
private List isSignedList;
/**
* Create a new cross-domain RSL entry. The info specified the swc file
* to exclude put a list of RSL URLs and policy file URLs. The first RSL
* url/policy file URL pair are the primary URLs. The remaining URLs are
* failovers and are only used if the primary RSL fails to load.
*/
public RuntimeSharedLibraryPathInfo()
{
rslURLs = new ArrayList();
}
/**
* Test is the url is signed.
*
* @param url url to test, the file specified by the url does not need
* to exist.
* @return true if the url specifies a signed rsl, false otherwise.
*/
public boolean isRSLURLSigned(String url)
{
if (url == null)
{
return false;
}
return url.endsWith(SIGNED_RSL_URL_DOT_EXTENSION);
}
/**
* Set the path to the SWC.
*
* @param swcPath The path to the SWC.
*/
public void setSWCPath(String swcPath)
{
this.swcPath = swcPath;
}
/**
* @return the path to the SWC.
*/
public String getSWCPath()
{
return swcPath;
}
/**
* Set the virtual file associated with the SWC path.
*
* @param vf The virtual file.
*/
public void setSWCFile(File vf)
{
swcVf = vf;
}
/**
*/
public File getSWCFile()
{
return swcVf;
}
/**
* Add an RSL to the list of RSLs.
*
* @param url url of the RSL, may not be null
*/
public void addRSLURL(String url)
{
if (url == null)
{
throw new NullPointerException("url may not be null");
}
rslURLs.add(url);
addSignedFlag(isRSLURLSigned(url));
}
/**
* @return List of urls to RSLs. Each entry in the list is of type
* String
.
*/
public List getRSLURLs()
{
return rslURLs;
}
/**
* Add a policy file to support the associated entry in the RSL URL
* list. Policy file entries my be empty, but must be specified.
*
* @param url url of the policy file.
*/
public void addPolicyFileURL(String url)
{
if (policyFileURLs == null)
{
policyFileURLs = new ArrayList();
}
policyFileURLs.add(url == null ? "" : url);
}
/**
* Get the list of policy files.
*
* @return Listof policy file URLs. Each entry in the list of type
* String
*/
public List getPolicyFileURLs()
{
return policyFileURLs == null ? Collections. emptyList() : policyFileURLs;
}
/**
* Return a list of booleans that indicate if an RSL URL is signed or
* unsigned. There is a matching entry is this list for every entry in
* the RSL URL list.
*
* @return List of boolean signed flags for the RSL URL list. Each entry
* in the list is of type Boolean
.
*/
public List getSignedFlags()
{
return isSignedList;
}
/**
* Add a signed flag to the list of flags. This flag is determines if
* the RSL URL associated with this entry is considered signed or
* unsigned.
*
* @param isSigned true if the RSL URL is signed.
*/
private void addSignedFlag(boolean isSigned)
{
if (isSignedList == null)
{
isSignedList = new ArrayList();
}
isSignedList.add(Boolean.valueOf(isSigned));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy