/*******************************************************************************
 *  Copyright 2017-2018 Centre for Development of Advanced Computing(C-DAC), Pune
 *  
 * 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 cdac.medinfo.sdk.dcm30_04.services.implanttemplate.sourceimpl;

import cdac.medinfo.sdk.dcm30_04.commoninterface.IDataSet;

/**
 *  This class contains the Attributes for Query Model. Also contains methods to populate and fill datas et of Query Model.
 */
public class ImplantTemplate_Attributes 
{
	private SOPCommonAttributes objSOPCommonAttributes;
	private ImplantTemplateGroupAttributes objImplantTemplateGroupAttributes;
	private ImplantTemplateAttributes objImplantTemplateAttributes;
	private ImplantAssemblyTemplateAttributes objImplantAssemblyTemplateAttributes;
	private GenericImplantTemplateMatingFeaturesAttributes objGenericImplantTemplateMatingFeaturesAttributes;
	
	/**
	 * Populates the query Model using filled data set.
	 */
	public void populate(IDataSet objIDataSet)
	{
		if(objSOPCommonAttributes == null)
			objSOPCommonAttributes = new SOPCommonAttributes();
		objSOPCommonAttributes.populate(objIDataSet);
		
		if(objImplantTemplateGroupAttributes == null)
			objImplantTemplateGroupAttributes = new ImplantTemplateGroupAttributes();
		objImplantTemplateGroupAttributes.populate(objIDataSet);
		
		if(objImplantTemplateAttributes == null)
			objImplantTemplateAttributes = new ImplantTemplateAttributes();
		objImplantTemplateAttributes.populate(objIDataSet);
		
		if(objImplantAssemblyTemplateAttributes == null)
			objImplantAssemblyTemplateAttributes = new ImplantAssemblyTemplateAttributes();
		objImplantAssemblyTemplateAttributes.populate(objIDataSet);	
		
		
		if(objGenericImplantTemplateMatingFeaturesAttributes == null)
			objGenericImplantTemplateMatingFeaturesAttributes = new GenericImplantTemplateMatingFeaturesAttributes();
		objGenericImplantTemplateMatingFeaturesAttributes.populate(objIDataSet);
	}	
	
	/**
	 * Fills the data set using already populated Query Model.
	 */
	public void fill(IDataSet objIDataSet)
	{
		if(objSOPCommonAttributes != null)
			objSOPCommonAttributes.fill(objIDataSet);
		
		if(objImplantTemplateGroupAttributes != null)
			objImplantTemplateGroupAttributes.fill(objIDataSet);
		
		if(objImplantTemplateAttributes != null)
			objImplantTemplateAttributes.fill(objIDataSet);
		
		if(objImplantAssemblyTemplateAttributes != null)
			objImplantAssemblyTemplateAttributes.fill(objIDataSet);
		
		if(objGenericImplantTemplateMatingFeaturesAttributes != null)
			objGenericImplantTemplateMatingFeaturesAttributes.fill(objIDataSet);
	}

	/**
	 * Retrieve the object of SOPCommonAttributes.
	 * @return Object of SOPCommonAttributes
	 */
	public SOPCommonAttributes getSOPCommonAttributes()
	{
		if(objSOPCommonAttributes == null)
			objSOPCommonAttributes = new SOPCommonAttributes();
		return objSOPCommonAttributes;
	}
	/**
	 * Sets the object of SOPCommonAttributes.
	 * @param objSOPCommonAttributes
	 */
	public void setSOPCommonAttributes(SOPCommonAttributes objSOPCommonAttributes) 
	{
		this.objSOPCommonAttributes = objSOPCommonAttributes;
	}
	
	/**
	 * Retrieve the object of ImplantTemplateGroupAttributes.
	 * @return Object of ImplantTemplateGroupAttributes
	 */
	public ImplantTemplateGroupAttributes getImplantTemplateGroupAttributes()
	{
		if(objImplantTemplateGroupAttributes == null)
			objImplantTemplateGroupAttributes = new ImplantTemplateGroupAttributes();
		return objImplantTemplateGroupAttributes;
	}

	public void setImplantTemplateGroupAttributes(ImplantTemplateGroupAttributes objImplantTemplateGroupAttributes) 
	{
		this.objImplantTemplateGroupAttributes = objImplantTemplateGroupAttributes;
	}
	
	
	/**
	 * Retrieve the object of ImplantTemplateAttributes.
	 * @return Object of ImplantTemplateAttributes
	 */
	public ImplantTemplateAttributes getImplantTemplateAttributes()
	{
		if(objImplantTemplateAttributes == null)
			objImplantTemplateAttributes = new ImplantTemplateAttributes();
		return objImplantTemplateAttributes;
	}
	/**
	 * Sets the object of ImplantTemplateAttributes.
	 * @param objImplantTemplateAttributes
	 */
	public void setImplantTemplateAttributes(ImplantTemplateAttributes objImplantTemplateAttributes) 
	{
		this.objImplantTemplateAttributes = objImplantTemplateAttributes;
	}
	
	/**
	 * Retrieve the object of ImplantAssemblyTemplateAttributes.
	 * @return Object of ImplantAssemblyTemplateAttributes
	 */
	public ImplantAssemblyTemplateAttributes getImplantAssemblyTemplateAttributes()
	{
		if(objImplantAssemblyTemplateAttributes == null)
			objImplantAssemblyTemplateAttributes = new ImplantAssemblyTemplateAttributes();
		return objImplantAssemblyTemplateAttributes;
	}
	/**
	 * Sets the object of ImplantAssemblyTemplateAttributes.
	 * @param objImplantAssemblyTemplateAttributes
	 */
	public void setImplantAssemblyTemplateAttributes(ImplantAssemblyTemplateAttributes objImplantAssemblyTemplateAttributes) 
	{
		this.objImplantAssemblyTemplateAttributes = objImplantAssemblyTemplateAttributes;
	}
	
	/**
	 * Retrieve the object of GenericImplantTemplateMatingFeaturesAttributes.
	 * @return Object of GenericImplantTemplateMatingFeaturesAttributes
	 */
	public GenericImplantTemplateMatingFeaturesAttributes getGenericImplantTemplateMatingFeaturesAttributes()
	{
		if(objGenericImplantTemplateMatingFeaturesAttributes == null)
			objGenericImplantTemplateMatingFeaturesAttributes = new GenericImplantTemplateMatingFeaturesAttributes();
		return objGenericImplantTemplateMatingFeaturesAttributes;
	}
	/**
	 * Sets the object of GenericImplantTemplateMatingFeaturesAttributes
	 * @param objGenericImplantTemplateMatingFeaturesAttributes
	 */
	public void setGenericImplantTemplateMatingFeaturesAttributes(GenericImplantTemplateMatingFeaturesAttributes objGenericImplantTemplateMatingFeaturesAttributes) 
	{
		this.objGenericImplantTemplateMatingFeaturesAttributes = objGenericImplantTemplateMatingFeaturesAttributes;
	}
}
