/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.javascript.commonjs.module.provider;

import java.net.URLConnection;
import org.mozilla.javascript.Context;

/**
 * Interface for URL connection based security domain providers. Used by {@link
 * UrlModuleSourceProvider} to create Rhino security domain objects for newly loaded scripts (see
 * {@link Context#compileReader(java.io.Reader, String, int, Object)}, in {@link Context}) based on
 * the properties obtainable through their URL connection.
 *
 * @author Attila Szegedi
 * @version $Id: UrlConnectionSecurityDomainProvider.java,v 1.3 2011/04/07 20:26:12 hannes%helma.at
 *     Exp $
 */
public interface UrlConnectionSecurityDomainProvider {
    /**
     * Create a new security domain object for a script source identified by its URL connection.
     *
     * @param urlConnection the URL connection of the script source
     * @return the security domain object for the script source. Can be null if no security domain
     *     object can be created, although it is advisable for the implementations to be able to
     *     create a security domain object for any URL connection.
     */
    public Object getSecurityDomain(URLConnection urlConnection);
}
