/**
 * 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.util.*;
import java.io.*;
import java.lang.Exception;

/**
 * This Class contains accessor and mutator methods for all properties defined in the CIM class OpaqueManagementData as well as methods comparable to
 * the invokeMethods defined for this class. This Class implements the OpaqueManagementDataBean Interface. The CIM class OpaqueManagementData is
 * described as follows:
 * 
 * A class derived from StorageExtent that describes opaque management data in managed systems. The structure and semantics of opaque management data,
 * which may be standardized or proprietary, are assumed to be known by at least one management client, but need not be known by the CIM server. The
 * UntransformedDataFormat property identifies the structure and semantics of the data. Opaque management data are typically stored in non-volatile
 * memory that is accessible to the server. Management clients are able to read and write opaque data, to manage their lifetime, and to configure the
 * access rights associated with them. The non-volatile storage is often used as a mailbox, with local management agents producing data for
 * consumption by remote management clients, or vice versa. This class is not intended as a general-purpose opaque alternative to any existing or
 * planned CIM classes. It is expressly intended for the mailbox usage model described above.
 */
public class OpaqueManagementData extends StorageExtent implements
		Serializable {

	/**
	 * This constructor creates a OpaqueManagementDataBeanImpl Class which implements the OpaqueManagementDataBean Interface, and encapsulates the CIM
	 * class OpaqueManagementData in a Java Bean. The CIM class OpaqueManagementData is described as follows:
	 * 
	 * A class derived from StorageExtent that describes opaque management data in managed systems. The structure and semantics of opaque management
	 * data, which may be standardized or proprietary, are assumed to be known by at least one management client, but need not be known by the CIM
	 * server. The UntransformedDataFormat property identifies the structure and semantics of the data. Opaque management data are typically stored in
	 * non-volatile memory that is accessible to the server. Management clients are able to read and write opaque data, to manage their lifetime, and
	 * to configure the access rights associated with them. The non-volatile storage is often used as a mailbox, with local management agents
	 * producing data for consumption by remote management clients, or vice versa. This class is not intended as a general-purpose opaque alternative
	 * to any existing or planned CIM classes. It is expressly intended for the mailbox usage model described above.
	 */
	public OpaqueManagementData() {
	};

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

	/**
	 * This method returns the OpaqueManagementData.maxSize property value. This property is described as follows:
	 * 
	 * The maximum number of bytes of opaque management data that the instance may contain.
	 * 
	 * @return long current maxSize property value
	 * @exception Exception
	 */
	public long getMaxSize() {

		return this.maxSize;
	} // getMaxSize

	/**
	 * This method sets the OpaqueManagementData.maxSize property value. This property is described as follows:
	 * 
	 * The maximum number of bytes of opaque management data that the instance may contain.
	 * 
	 * @param long new maxSize property value
	 * @exception Exception
	 */
	public void setMaxSize(long maxSize) {

		this.maxSize = maxSize;
	} // setMaxSize

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

	/**
	 * This method returns the OpaqueManagementData.lastAccessed property value. This property is described as follows:
	 * 
	 * The date and time when the opaque management data was last accessed. Any operation on the OpaqueManagementData instance constitutes access.
	 * This property shall be NULL if it is not supported by the implementation.
	 * 
	 * @return Date current lastAccessed property value
	 * @exception Exception
	 */
	public Date getLastAccessed() {

		return this.lastAccessed;
	} // getLastAccessed

	/**
	 * This method sets the OpaqueManagementData.lastAccessed property value. This property is described as follows:
	 * 
	 * The date and time when the opaque management data was last accessed. Any operation on the OpaqueManagementData instance constitutes access.
	 * This property shall be NULL if it is not supported by the implementation.
	 * 
	 * @param Date
	 *            new lastAccessed property value
	 * @exception Exception
	 */
	public void setLastAccessed(Date lastAccessed) {

		this.lastAccessed = lastAccessed;
	} // setLastAccessed

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

	public enum WriteLimited {
		UNKNOWN,
		NOT_WRITE_LIMITED,
		WRITE_LIMITED,
		DMTF_RESERVED
	}

	private WriteLimited	writeLimited;

	/**
	 * This method returns the OpaqueManagementData.writeLimited property value. This property is described as follows:
	 * 
	 * Indicates whether the data are stored on a medium that has a limited number of write/erase cycles (e.g., flash memory).
	 * 
	 * @return int current writeLimited property value
	 * @exception Exception
	 */
	public WriteLimited getWriteLimited() {

		return this.writeLimited;
	} // getWriteLimited

	/**
	 * This method sets the OpaqueManagementData.writeLimited property value. This property is described as follows:
	 * 
	 * Indicates whether the data are stored on a medium that has a limited number of write/erase cycles (e.g., flash memory).
	 * 
	 * @param int new writeLimited property value
	 * @exception Exception
	 */
	public void setWriteLimited(WriteLimited writeLimited) {

		this.writeLimited = writeLimited;
	} // setWriteLimited

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

	/**
	 * This method returns the OpaqueManagementData.dataFormat property value. This property is described as follows:
	 * 
	 * Describes the format of the opaque management data. A free-form string that shall only be set by an authorized client, and shall not be changed
	 * by the implementation.
	 * 
	 * @return String current dataFormat property value
	 * @exception Exception
	 */
	public String getDataFormat() {

		return this.dataFormat;
	} // getDataFormat

	/**
	 * This method sets the OpaqueManagementData.dataFormat property value. This property is described as follows:
	 * 
	 * Describes the format of the opaque management data. A free-form string that shall only be set by an authorized client, and shall not be changed
	 * by the implementation.
	 * 
	 * @param String
	 *            new dataFormat property value
	 * @exception Exception
	 */
	public void setDataFormat(String dataFormat) {

		this.dataFormat = dataFormat;
	} // setDataFormat

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

	/**
	 * This method returns the OpaqueManagementData.dataSize property value. This property is described as follows:
	 * 
	 * The number of bytes of opaque management data in the instance.
	 * 
	 * @return long current dataSize property value
	 * @exception Exception
	 */
	public long getDataSize() {

		return this.dataSize;
	} // getDataSize

	/**
	 * This method sets the OpaqueManagementData.dataSize property value. This property is described as follows:
	 * 
	 * The number of bytes of opaque management data in the instance.
	 * 
	 * @param long new dataSize property value
	 * @exception Exception
	 */
	public void setDataSize(long dataSize) {

		this.dataSize = dataSize;
	} // setDataSize

} // Class OpaqueManagementData
