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

import at.gv.egovernment.moa.spss.api.common.Content;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfile;
import at.gv.egovernment.moa.spss.api.xmlsign.DataObjectInfo;

/**
 * Default implementation of <code>DataObjectInfo</code>.
 * 
 * @author Fatemeh Philippi
 * @version $Id$
 */
public class DataObjectInfoImpl implements DataObjectInfo {
  /** The signature structure type. */
  private String stucture;
  /** Whether a reference will be placed in the signature itself or in the
   * manifest */
  private boolean childOfManifest;
  /** The data object to be signed. */
  private Content dataObject;
  /** The profile containing additional information for the transformations. */
  private CreateTransformsInfoProfile createTransformsInfoProfile;

  /**
   * Sets the signature structure type.
   * 
   * @param structure The signature structure type.
   */
  public void setStructure(String structure) {
    this.stucture = structure;
  }

  public String getStructure() {
    return stucture;
  }

  /**
   * Sets whether a reference will be placed in the signature itself or in the
   * manifest.
   * 
   * @param childOfManifest Whether to put the reference in the signature of
   * in the manifest. 
   */
  public void setChildOfManifest(boolean childOfManifest) {
    this.childOfManifest = childOfManifest;
  }

  public boolean isChildOfManifest() {
    return childOfManifest;
  }

  /**
   * Sets the data object to be signed.
   * 
   * @param dataObject The data object to be signed.
   */
  public void setDataObject(Content dataObject) {
    this.dataObject = dataObject;
  }

  public Content getDataObject() {
    return dataObject;
  }

  /**
   * Sets additional information for the transformations.
   * 
   * @param profile The profile containing additional information for the
   * transformations.
   */
  public void setCreateTransformsInfoProfile(CreateTransformsInfoProfile profile) {
    this.createTransformsInfoProfile = profile;
  }

  public CreateTransformsInfoProfile getCreateTransformsInfoProfile() {
    return createTransformsInfoProfile;
  }

}