/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.28
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package com.entrouvert.lasso;

public class LibAssertion extends SamlAssertion {
  protected LibAssertion(long cPtr, boolean cMemoryOwn) {
    super(cPtr, cMemoryOwn);
  }

  protected static long getCPtr(LibAssertion obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public void delete() {
  super.delete();
}

  public void setAdvice(SamlAdvice value) {
    lassoJNI.LibAssertion_advice_set(swigCPtr, SamlAdvice.getCPtr(value));
  }

  public SamlAdvice getAdvice() {
    long cPtr = lassoJNI.LibAssertion_advice_get(swigCPtr);
    return (cPtr == 0) ? null : new SamlAdvice(cPtr, false);
  }

  public void setAssertionId(String value) {
    lassoJNI.LibAssertion_assertionId_set(swigCPtr, value);
  }

  public String getAssertionId() {
    return lassoJNI.LibAssertion_assertionId_get(swigCPtr);
  }

  public void setAttributeStatement(SamlAttributeStatement value) {
    lassoJNI.LibAssertion_attributeStatement_set(swigCPtr, SamlAttributeStatement.getCPtr(value));
  }

  public SamlAttributeStatement getAttributeStatement() {
    long cPtr = lassoJNI.LibAssertion_attributeStatement_get(swigCPtr);
    return (cPtr == 0) ? null : new SamlAttributeStatement(cPtr, false);
  }

  public void setAuthenticationStatement(SamlAuthenticationStatement value) {
    lassoJNI.LibAssertion_authenticationStatement_set(swigCPtr, SamlAuthenticationStatement.getCPtr(value));
  }

  public SamlAuthenticationStatement getAuthenticationStatement() {
    long cPtr = lassoJNI.LibAssertion_authenticationStatement_get(swigCPtr);
    return (cPtr == 0) ? null : new SamlAuthenticationStatement(cPtr, false);
  }

  public void setCertificateFile(String value) {
    lassoJNI.LibAssertion_certificateFile_set(swigCPtr, value);
  }

  public String getCertificateFile() {
    return lassoJNI.LibAssertion_certificateFile_get(swigCPtr);
  }

  public void setConditions(SamlConditions value) {
    lassoJNI.LibAssertion_conditions_set(swigCPtr, SamlConditions.getCPtr(value));
  }

  public SamlConditions getConditions() {
    long cPtr = lassoJNI.LibAssertion_conditions_get(swigCPtr);
    return (cPtr == 0) ? null : new SamlConditions(cPtr, false);
  }

  public void setIssueInstant(String value) {
    lassoJNI.LibAssertion_issueInstant_set(swigCPtr, value);
  }

  public String getIssueInstant() {
    return lassoJNI.LibAssertion_issueInstant_get(swigCPtr);
  }

  public void setIssuer(String value) {
    lassoJNI.LibAssertion_issuer_set(swigCPtr, value);
  }

  public String getIssuer() {
    return lassoJNI.LibAssertion_issuer_get(swigCPtr);
  }

  public void setMajorVersion(int value) {
    lassoJNI.LibAssertion_majorVersion_set(swigCPtr, value);
  }

  public int getMajorVersion() {
    return lassoJNI.LibAssertion_majorVersion_get(swigCPtr);
  }

  public void setMinorVersion(int value) {
    lassoJNI.LibAssertion_minorVersion_set(swigCPtr, value);
  }

  public int getMinorVersion() {
    return lassoJNI.LibAssertion_minorVersion_get(swigCPtr);
  }

  public void setPrivateKeyFile(String value) {
    lassoJNI.LibAssertion_privateKeyFile_set(swigCPtr, value);
  }

  public String getPrivateKeyFile() {
    return lassoJNI.LibAssertion_privateKeyFile_get(swigCPtr);
  }

  public void setSignMethod(int value) {
    lassoJNI.LibAssertion_signMethod_set(swigCPtr, value);
  }

  public int getSignMethod() {
    return lassoJNI.LibAssertion_signMethod_get(swigCPtr);
  }

  public void setSignType(SWIGTYPE_p_LassoSignatureType value) {
    lassoJNI.LibAssertion_signType_set(swigCPtr, SWIGTYPE_p_LassoSignatureType.getCPtr(value));
  }

  public SWIGTYPE_p_LassoSignatureType getSignType() {
    return new SWIGTYPE_p_LassoSignatureType(lassoJNI.LibAssertion_signType_get(swigCPtr), true);
  }

  public void setSubjectStatement(SamlSubjectStatement value) {
    lassoJNI.LibAssertion_subjectStatement_set(swigCPtr, SamlSubjectStatement.getCPtr(value));
  }

  public SamlSubjectStatement getSubjectStatement() {
    long cPtr = lassoJNI.LibAssertion_subjectStatement_get(swigCPtr);
    return (cPtr == 0) ? null : new SamlSubjectStatement(cPtr, false);
  }

  public LibAssertion() {
    this(lassoJNI.new_LibAssertion(), true);
  }

  public static LibAssertion newFull(String issuer, String requestId, String audience, String notBefore, String notOnOrAfter) {
    long cPtr = lassoJNI.LibAssertion_newFull(issuer, requestId, audience, notBefore, notOnOrAfter);
    return (cPtr == 0) ? null : new LibAssertion(cPtr, true);
  }

  public String dump() {
    return lassoJNI.LibAssertion_dump(swigCPtr);
  }

}
