/**
 * This file was auto-generated by mofcomp -j version 1.0.0 on Wed Jan 12
 * 09:21:06 CET 2011.
 */

package org.opennaas.extensions.router.model;

import java.io.*;
import java.lang.Exception;

/**
 * This Class contains accessor and mutator methods for all properties defined in the CIM class IPsecSAEndpoint as well as methods comparable to the
 * invokeMethods defined for this class. This Class implements the IPsecSAEndpointBean Interface. The CIM class IPsecSAEndpoint is described as
 * follows:
 * 
 * IPsecSAEndpoints are types of SecurityAssociationEndpoints representing both negotiated and static SAs that correspond to AH, ESP, or IPCOMP
 * transforms.
 */
public class IPsecSAEndpoint extends SecurityAssociationEndpoint implements
		Serializable {

	/**
	 * This constructor creates a IPsecSAEndpointBeanImpl Class which implements the IPsecSAEndpointBean Interface, and encapsulates the CIM class
	 * IPsecSAEndpoint in a Java Bean. The CIM class IPsecSAEndpoint is described as follows:
	 * 
	 * IPsecSAEndpoints are types of SecurityAssociationEndpoints representing both negotiated and static SAs that correspond to AH, ESP, or IPCOMP
	 * transforms.
	 */
	public IPsecSAEndpoint() {
	};

	/**
	 * The following constants are defined for use with the ValueMap/Values qualified property sPI.
	 */
	private long	sPI;

	/**
	 * This method returns the IPsecSAEndpoint.sPI property value. This property is described as follows:
	 * 
	 * SPI contains the Security Parameter Index of the SA. This value in string form may also be used in the key field 'Name' inherited from
	 * ServiceAccessPoint.
	 * 
	 * @return long current sPI property value
	 * @exception Exception
	 */
	public long getSPI() {

		return this.sPI;
	} // getSPI

	/**
	 * This method sets the IPsecSAEndpoint.sPI property value. This property is described as follows:
	 * 
	 * SPI contains the Security Parameter Index of the SA. This value in string form may also be used in the key field 'Name' inherited from
	 * ServiceAccessPoint.
	 * 
	 * @param long new sPI property value
	 * @exception Exception
	 */
	public void setSPI(long sPI) {

		this.sPI = sPI;
	} // setSPI

	/**
	 * The following constants are defined for use with the ValueMap/Values qualified property inboundDirection.
	 */
	private boolean	inboundDirection;

	/**
	 * This method returns the IPsecSAEndpoint.inboundDirection property value. This property is described as follows:
	 * 
	 * InboundDirection specifies whether the SA applies to inbound (TRUE) or outbound (FALSE) traffic.
	 * 
	 * @return boolean current inboundDirection property value
	 * @exception Exception
	 */
	public boolean isInboundDirection() {

		return this.inboundDirection;
	} // getInboundDirection

	/**
	 * This method sets the IPsecSAEndpoint.inboundDirection property value. This property is described as follows:
	 * 
	 * InboundDirection specifies whether the SA applies to inbound (TRUE) or outbound (FALSE) traffic.
	 * 
	 * @param boolean new inboundDirection property value
	 * @exception Exception
	 */
	public void setInboundDirection(boolean inboundDirection) {

		this.inboundDirection = inboundDirection;
	} // setInboundDirection

	/**
	 * The following constants are defined for use with the ValueMap/Values qualified property EncapsulationMode.
	 */

	public enum EncapsulationMode {
		UNKNOWN,
		TUNNEL,
		TRANSPORT
	}

	private EncapsulationMode	encapsulationMode;

	/**
	 * This method returns the IPsecSAEndpoint.encapsulationMode property value. This property is described as follows:
	 * 
	 * EncapsulationMode indicates whether the IPsecSAEndpoint uses transport or tunnel encapsulation.
	 * 
	 * @return int current encapsulationMode property value
	 * @exception Exception
	 */
	public EncapsulationMode getEncapsulationMode() {

		return this.encapsulationMode;
	} // getEncapsulationMode

	/**
	 * This method sets the IPsecSAEndpoint.encapsulationMode property value. This property is described as follows:
	 * 
	 * EncapsulationMode indicates whether the IPsecSAEndpoint uses transport or tunnel encapsulation.
	 * 
	 * @param int new encapsulationMode property value
	 * @exception Exception
	 */
	public void setEncapsulationMode(EncapsulationMode encapsulationMode) {

		this.encapsulationMode = encapsulationMode;
	} // setEncapsulationMode

	/**
	 * The following constants are defined for use with the ValueMap/Values qualified property DFHandling.
	 */

	public enum DFHandling {
		UNKNOWN,
		COPY_FROM_INTERNAL_TO_EXTERNAL_IP_HEADER,
		SET_DF_BIT_IN_EXTERNAL_HEADER_TO_1,
		SET_DF_BIT_IN_EXTERNAL_HEADER_TO_0
	}

	private DFHandling	dFHandling;

	/**
	 * This method returns the IPsecSAEndpoint.dFHandling property value. This property is described as follows:
	 * 
	 * DFHandling controls how the 'Don't Fragment' bit is managed by the IPsecSAEndpoint.
	 * 
	 * @return int current dFHandling property value
	 * @exception Exception
	 */
	public DFHandling getDFHandling() {

		return this.dFHandling;
	} // getDFHandling

	/**
	 * This method sets the IPsecSAEndpoint.dFHandling property value. This property is described as follows:
	 * 
	 * DFHandling controls how the 'Don't Fragment' bit is managed by the IPsecSAEndpoint.
	 * 
	 * @param int new dFHandling property value
	 * @exception Exception
	 */
	public void setDFHandling(DFHandling dFHandling) {

		this.dFHandling = dFHandling;
	} // setDFHandling

	/**
	 * The following constants are defined for use with the ValueMap/Values qualified property pFSInUse.
	 */
	private boolean	pFSInUse;

	/**
	 * This method returns the IPsecSAEndpoint.pFSInUse property value. This property is described as follows:
	 * 
	 * PFSInUse indicates whether perfect forward secrecy is required when refreshing keys.
	 * 
	 * @return boolean current pFSInUse property value
	 * @exception Exception
	 */
	public boolean isPFSInUse() {

		return this.pFSInUse;
	} // getPFSInUse

	/**
	 * This method sets the IPsecSAEndpoint.pFSInUse property value. This property is described as follows:
	 * 
	 * PFSInUse indicates whether perfect forward secrecy is required when refreshing keys.
	 * 
	 * @param boolean new pFSInUse property value
	 * @exception Exception
	 */
	public void setPFSInUse(boolean pFSInUse) {

		this.pFSInUse = pFSInUse;
	} // setPFSInUse

} // Class IPsecSAEndpoint
