package de.tu_dresden.diplom.richter_mirko_mat2628335.witness.context;

import de.tu_dresden.diplom.richter_mirko_mat2628335.common.digestAgreement.IFDigestAgreementRequest;
import de.tu_dresden.diplom.richter_mirko_mat2628335.common.evidence.IFBodyEvidence;
import de.tu_dresden.diplom.richter_mirko_mat2628335.witness.process.result.IFDigestAgreementConfirmationResult;
import de.tu_dresden.diplom.richter_mirko_mat2628335.common.entity.IFEntity;
import de.tu_dresden.diplom.richter_mirko_mat2628335.common.result.IFBaseResult;
import de.tu_dresden.diplom.richter_mirko_mat2628335.common.evidence.IFBodyEvidence;
import de.tu_dresden.diplom.richter_mirko_mat2628335.common.entity.IFEntity;

/**
 * 
 */
public interface IFDigestAgreementProcess {

   public IFDigestAgreementProcess.IFProcessOperationResult setFirst(IFDigestAgreementRequest request, IFEntity actingEntity, IFBodyEvidence evidence);
   public IFDigestAgreementProcess.IFProcessOperationResult setSecond(IFDigestAgreementRequest request, IFEntity actingEntity, IFBodyEvidence evidence);

   public IFDigestAgreementConfirmationResult getConfirmationResult(IFDigestAgreementRequest request);

   /**
    * Checks wheather both SOAP-parties have their success- or failure-result
    * @return
    */
   public boolean isInvalid();

   public interface IFProcessOperationResult extends IFBaseResult{

   }
}
