/*
* XAdES4j - A Java library for generation and verification of XAdES signatures.
* Copyright (C) 2010 Luis Goncalves.
*
* XAdES4j is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 3 of the License, or any later version.
*
* XAdES4j is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License along
* with XAdES4j. If not, see <http://www.gnu.org/licenses/>.
*/
package xades4j.properties;
/**
* A commitment type that applies to some signed data objects. The class has
* helper methods to get new instances representing a number of commitments that
* have been already identified in TS 101 733.
*
* @see CommitmentTypePropertyBase
* @author Luís
*/
public final class CommitmentTypeProperty extends CommitmentTypePropertyBase
{
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of origin</i>
* commitment. Indicates that the signer recognizes to have created, approved
* and sent the signed data object.
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfOrigin()
{
return new CommitmentTypeProperty(PROOF_OF_ORIGIN_URI, PROOF_OF_ORIGIN_DESC);
}
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of receipt</i>
* commitment. Indicates that signer recognizes to have received the content
* of the signed data object.
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfReceipt()
{
return new CommitmentTypeProperty(PROOF_OF_RECEIPT_URI, PROOF_OF_RECEIPT_DESC);
}
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of delivery</i>
* commitment. Indicates that the TSP providing that indication has delivered
* a signed data object in a local store accessible to the recipient of the
* signed data object.
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfDelivery()
{
return new CommitmentTypeProperty(PROOF_OF_DELIVERY_URI, PROOF_OF_DELIVERY_DESC);
}
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of sender</i>
* commitment. Indicates that the entity providing the indication has sent
* the signed data object (but not necessarily created it).
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfSender()
{
return new CommitmentTypeProperty(PROOF_OF_SENDER_URI, PROOF_OF_SENDER_DESC);
}
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of approval</i>
* commitment. Indicates that the signer has approved the content of the signed
* data object.
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfApproval()
{
return new CommitmentTypeProperty(PROOF_OF_APPROVAL_URI, PROOF_OF_APPROVAL_DESC);
}
/**
* Gets an {@code CommitmentTypeProperty} representing the <i>Proof of origin</i>
* commitment. Indicates that the signer has created the signed data object
* (but not necessarily approved, nor sent it).
* @return a new instance with the commitment information
*/
public static CommitmentTypeProperty proofOfCreation()
{
return new CommitmentTypeProperty(PROOF_OF_CREATION_URI, PROOF_OF_CREATION_DESC);
}
/**/
/**
* @param uri the commitment type URI
* @param description teh commitment type description
*/
public CommitmentTypeProperty(String uri, String description)
{
super(uri, description, SignedDataObjectProperty.TargetMultiplicity.N);
}
}