/************************************************
* Columbia University CS Department
* Network Security Lab
*
* Open and Survivable Embedded Systems (OASES)
*
* Structured Policy Command Language (SPCL)
*
*
* This software is provided as is without any
* warranty or guarantee of merchantibility
* or fitness for a particular purpose. This
* software is released under the terms of the
* GNU General Public License (GPL).
*
* Last updated: March 27, 2003
*
***********************************************/

package spcl.data;

/** 
 * This class represents the base class for a
 * generic policy installer. The code generation
 * facilities will essentially create a subclass
 * of this class.
 *
 * @author locasto@cs.columbia.edu
 * @author mb@cs.columbia.edu
 *
*/
public class PolicyInstaller{

  protected PolicyLoader policyLoader;

  public PolicyInstaller(){}

  public void setPolicyLoader( PolicyLoader loader ){
      this.policyLoader = loader;
  }
 
  /**
   * This method should be overidden.
   *
   * It should have three sections:
   *  <ol>
   *   <li>declarations</li>
   *   <li>parameterization</li>
   *   <li>setup & attaching</li>
   *  </ol>
   * and should finish with 
   * <code>policyLoader.load( policy );</code>
   *
  */
  public void doInstall() throws PolicyException{
    if( null==policyLoader )
       throw new PolicyException( "No policy loader defined.", PolicyException.NULL_LOADER );
    return;
  }


}
