/**
 * Copyright 2008-2009 DRIVER PROJECT (Bielefeld University)
 * Original author: Marek Imialek <marek.imialek at uni-bielefeld.de>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package eu.dnetlib.data.sts.profile.sdo;

import eu.dnetlib.common.profile.Body;



/**
 * The Class SdoProfileBody represents body part of Simple 
 * Digital Object profile.
 * 
 * @author <a href="mailto:marek.imialek at uni-bielefeld.de">Marek Imialek</a>
 */
public class SdoProfileBody implements Body {

	/** The configuration part. */
	SdoProfileConfiguration configuration;

	/** The status part. */
	SdoProfileStatus status;

	/**
	 * Instantiates a new body part of SDO profile.
	 */
	public SdoProfileBody() {
		this.configuration = new SdoProfileConfiguration();
		this.status = new SdoProfileStatus();
	}

	/**
	 * Gets the last modification date.
	 * 
	 * @return the last modification date
	 */
	public String getLastModificationDate() {
		return this.status.getLastModificationDate();
	}

	/**
	 * Sets the last storage date.
	 * 
	 * @param lastModificationDate the last modification date
	 */
	public void setLastModificationDate(String lastModificationDate) {
		this.status.setLastModiifcationDate(lastModificationDate);
	}

	/**
	 * Gets the sdo size.
	 * 
	 * @return the sdo size
	 */
	public long getSdoSize() {
		return this.status.getSdoSize();
	}

	/**
	 * Sets the sdo size.
	 * 
	 * @param sdoSize the new sdo size
	 */
	public void setSdoSize(long sdoSize) {
		this.status.setSdoSize(sdoSize);
	}

	/**
	 * Gets the sdo version.
	 * 
	 * @return the sdo version
	 */
	public String getSdoVersion() {
		return this.status.getSdoVersion();
	}

	/**
	 * Sets the sdo version.
	 * 
	 * @param sdoVersion the new sdo version
	 */
	public void setSdoVersion(String sdoVersion) {
		this.status.setSdoVersion(sdoVersion);
	}

	/**
	 * Gets the sdo uri.
	 * 
	 * @return the sdo uri
	 */
	public String getSdoUri() {
		return this.status.getSdoUri();
	}

	/**
	 * Sets the sdo uri.
	 * 
	 * @param sdoUri the new sdo uri
	 */
	public void setSdoUri(String sdoUri) {
		this.status.setSdoUri(sdoUri);
	}

	/**
	 * Gets the sdo.
	 * 
	 * @return the sdo
	 */
	public String getSdo() {
		return this.status.getSdo();
	}

	/**
	 * Sets the sdo.
	 * 
	 * @param sdo the new sdo
	 */
	public void setSdo(String sdo) {
		this.status.setSdo(sdo);
	}

	/**
	 * Gets SDO mime type.
	 * 
	 * @return the SDO mime type
	 */
	public String getSdoMimeType() {
		return this.configuration.getSdoMimeType();
	}

	/**
	 * Sets SDO mime type.
	 * 
	 * @param sdoMimeType the sdo mime type
	 */
	public void setSdoMimeType(String sdoMimeType) {
		this.configuration.setSdoMimeType(sdoMimeType);
	}

	/**
	 * Gets the configuration.
	 * 
	 * @return the configuration
	 */
	public SdoProfileConfiguration getConfiguration() {
		return configuration;
	}

	/**
	 * Sets the configuration.
	 * 
	 * @param configuration the new configuration
	 */
	public void setConfiguration(SdoProfileConfiguration configuration) {
		this.configuration = configuration;
	}

	/**
	 * Gets the status.
	 * 
	 * @return the status
	 */
	public SdoProfileStatus getStatus() {
		return status;
	}

	/**
	 * Sets the status.
	 * 
	 * @param status the new status
	 */
	public void setStatus(SdoProfileStatus status) {
		this.status = status;
	}
}
