/*******************************************************************************
 * Copyright 2016 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 in.cdac.medinfo.csnotk.csnolib.icdmap;

import java.util.ArrayList;
import java.util.List;

/**
 * Provides SNOMED CT to ICD-10 mapping details for a group. 
 * Group has details of map target ICD-10 code and list of advices.
 * 
 * @see MapAdvice
 */
public class MapGroup {
	
	private String mappedICDCode = "";
	private List<MapAdvice> mapAdvices = new ArrayList<MapAdvice>();
	
	/**
	 * Default constructor.
	 */
	public MapGroup() {
	}

	/**
	 * Parameterized constructor.
	 * @param mappedICDCode
	 * map target ICD-10 code
	 * @param mapAdvices
	 * list of mapping advice
	 */
	public MapGroup(String mappedICDCode, List<MapAdvice> mapAdvices) {
		this.mappedICDCode = mappedICDCode;
		this.mapAdvices = mapAdvices;
	}

	/**
	 * Returns the mapped ICD-10 code.
	 * @return
	 * ICD-10 code
	 */
	public String getMappedICDCode() {
		return this.mappedICDCode;
	}

	/**
	 * Sets the mapped ICD-10 code.
	 * @param mapTarget
	 * ICD-10 code
	 */
	public void setMappedICDCode(String mapTarget) {
		this.mappedICDCode = mapTarget;
	}
	
	/**
	 * Returns the list of map advice.
	 * @return
	 * list of map advice
	 */
	public List<MapAdvice> getMapAdvices() {
		return this.mapAdvices;
	}

	/**
	 * Sets the list of map advice.
	 * @param mapAdvices
	 * list of map advice
	 */
	public void setMapAdvices(List<MapAdvice> mapAdvices) {
		this.mapAdvices = mapAdvices;
	}

	/**
	 * Adds a new advice to list of advices.
	 * @param mapAdvice
	 * map advice to be added to the list
	 */
	public void addMapAdvice(MapAdvice mapAdvice) {
		this.mapAdvices.add(mapAdvice);
	}
	
}
