package at.gv.egovernment.moa.spss.api.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureEnvironmentProfileExplicit;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureLocation;

/**
 * Default implementation of 
 * <codeCreateSignatureEnvironmentProfileExplicit</code>.
 * 
 * @author Patrick Peck
 * @version $Id$
 */
public class CreateSignatureEnvironmentProfileExplicitImpl
  implements CreateSignatureEnvironmentProfileExplicit {

  /** The insertion location of the signature to be created. */
  private CreateSignatureLocation createSignatureLocation;

  /** Supplemental information for evaluating the signature environment. */
  private List supplements;

  /**
   * Sets the insertion location of the signature to be created.
   * 
   * @param createSignatureLocation The insertion location of the signature to 
   * be created.
   */
  public void setCreateSignatureLocation(CreateSignatureLocation createSignatureLocation) {
    this.createSignatureLocation = createSignatureLocation;
  }

  public CreateSignatureLocation getCreateSignatureLocation() {
    return createSignatureLocation;
  }

  /**
   * Sets the supplemental information for evaluating the signature
   * environment.
   * 
   * @param supplements The supplemental information.
   */
  public void setSupplements(List supplements) {
    this.supplements =
      supplements != null
        ? Collections.unmodifiableList(new ArrayList(supplements))
        : null;
  }

  public List getSupplements() {
    return supplements;
  }

  /**
   * Gets the type of profile.
   * 
   * @return EXPLICIT_CREATESIGNATUREENVIRONMENTPROFILE
   */
  public int getCreateSignatureEnvironmentProfileType() {
    return EXPLICIT_CREATESIGNATUREENVIRONMENTPROFILE;
  }

}