/*
 * Copyright 2004-2007 IDCA. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
 * following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of conditions and
 *        the following disclaimer.
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
 *        and the following disclaimer in the documentation and/or other materials provided with the
 *        distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the authors and
 * should not be interpreted as representing official policies, either expressed or implied, of IDCA.
 */

package com.idcanet.vasc.impl;

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

import com.idcanet.vasc.core.VascEntryFieldSet;

/**
 * 
 * @author Willem Cazander
 * @version 1.0 Mar 21, 2007
 */
public class DefaultVascEntryFieldSet implements VascEntryFieldSet {
	
	private String id = null;
	
	private String name = null;
	private String description = null;
	private String helpId = null;
	private String image = null;

	private String styleList = null;
	private String styleEdit = null;
	
	private boolean collapsed = false;
	private boolean optional = false;
	
	private List<String> vascEntryFieldIds = null;

	public DefaultVascEntryFieldSet() {
		vascEntryFieldIds = new ArrayList<String>(10);
	}
	
	/**
	 * @see java.lang.Object#clone()
	 */
	@Override
	public VascEntryFieldSet clone() throws CloneNotSupportedException {
		DefaultVascEntryFieldSet result = new DefaultVascEntryFieldSet();
		result.id=id;
		result.name=name;
		result.description=description;
		result.helpId=helpId;
		result.image=image;
		result.styleList=styleList;
		result.styleEdit=styleEdit;
		result.collapsed=collapsed;
		result.optional=optional;
		result.vascEntryFieldIds.addAll(vascEntryFieldIds);
		return result;
	}
	
	
	/**
	 * @return the id
	 */
	public String getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @param description the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * @return the helpId
	 */
	public String getHelpId() {
		return helpId;
	}

	/**
	 * @param helpId the helpId to set
	 */
	public void setHelpId(String helpId) {
		this.helpId = helpId;
	}

	/**
	 * @return the image
	 */
	public String getImage() {
		return image;
	}

	/**
	 * @param image the image to set
	 */
	public void setImage(String image) {
		this.image = image;
	}

	/**
	 * @return the styleList
	 */
	public String getStyleList() {
		return styleList;
	}

	/**
	 * @param styleList the styleList to set
	 */
	public void setStyleList(String styleList) {
		this.styleList = styleList;
	}

	/**
	 * @return the styleEdit
	 */
	public String getStyleEdit() {
		return styleEdit;
	}

	/**
	 * @param styleEdit the styleEdit to set
	 */
	public void setStyleEdit(String styleEdit) {
		this.styleEdit = styleEdit;
	}

	/**
	 * @return the collapsed
	 */
	public boolean isCollapsed() {
		return collapsed;
	}

	/**
	 * @param collapsed the collapsed to set
	 */
	public void setCollapsed(boolean collapsed) {
		this.collapsed = collapsed;
	}

	/**
	 * @return the optional
	 */
	public boolean isOptional() {
		return optional;
	}

	/**
	 * @param optional the optional to set
	 */
	public void setOptional(boolean optional) {
		this.optional = optional;
	}

	/**
	 * @return the vascEntryFieldIds
	 */
	public List<String> getVascEntryFieldIds() {
		return vascEntryFieldIds;
	}

	/**
	 * @param vascEntryFieldIds the vascEntryFieldIds to set
	 */
	public void addVascEntryFieldId(String vascEntryFieldId) {
		vascEntryFieldIds.add(vascEntryFieldId);
	}
	
	/**
	 * @param vascEntryFieldIds the vascEntryFieldIds to set
	 */
	public void removeVascEntryFieldId(String vascEntryFieldId) {
		vascEntryFieldIds.remove(vascEntryFieldId);
	}	
}