gt: 		for(int i = 0; i < col.size(); i++)
context: //#############################################################################
  //#                                                                           #
  //#  Copyright (C) <2014>  <IMS MAXIMS>                                       #
  //#                                                                           #
  //#  This program is free software: you can redistribute it and/or modify     #
  //#  it under the terms of the GNU Affero General Public License as           #
  //#  published by the Free Software Foundation, either version 3 of the       #
  //#  License, or (at your option) any later version.                          # 
  //#                                                                           #
  //#  This program is distributed in the hope that it will be useful,          #
  //#  but WITHOUT ANY WARRANTY; without even the implied warranty of           #
  //#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
  //#  GNU Affero General Public License for more details.                      #
  //#                                                                           #
  //#  You should have received a copy of the GNU Affero General Public License #
  //#  along with this program.  If not, see <http://www.gnu.org/licenses/>.    #
  //#                                                                           #
  //#############################################################################
  //#EOH
  // This code was generated by Barbara Worwood using IMS Development Environment (version 1.80 build 5007.25751)
  // Copyright (C) 1995-2014 IMS MAXIMS. All rights reserved.
  // WARNING: DO NOT MODIFY the content of this file
  
  package ims.clinical.vo;
  
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.Comparator;
  import java.util.Iterator;
  import ims.framework.enumerations.SortOrder;
  
  /**
   * Linked to clinical.SurgicalAuditActualProcedure business object (ID: 1072100104).
   */
  public class SurgicalAuditActualProcedureVoCollection extends ims.vo.ValueObjectCollection implements ims.vo.ImsCloneable, Iterable<SurgicalAuditActualProcedureVo>
  {
  	private static final long serialVersionUID = 1L;
  
  	private ArrayList<SurgicalAuditActualProcedureVo> col = new ArrayList<SurgicalAuditActualProcedureVo>();
  	public String getBoClassName()
  	{
  		return "ims.clinical.domain.objects.SurgicalAuditActualProcedure";
  	}
  	public boolean add(SurgicalAuditActualProcedureVo value)
  	{
  		if(value == null)
  			return false;
  		if(this.col.indexOf(value) < 0)
  		{
  			return this.col.add(value);
  		}
  		return false;
  	}
  	public boolean add(int index, SurgicalAuditActualProcedureVo value)
  	{
  		if(value == null)
  			return false;
  		if(this.col.indexOf(value) < 0)
  		{
  			this.col.add(index, value);
  			return true;
  		}
  		return false;
  	}
  	public void clear()
  	{
  		this.col.clear();
  	}
  	public void remove(int index)
  	{
  		this.col.remove(index);
  	}
  	public int size()
  	{
  		return this.col.size();
  	}
  	public int indexOf(SurgicalAuditActualProcedureVo instance)
  	{
  		return col.indexOf(instance);
  	}
  	public SurgicalAuditActualProcedureVo get(int index)
  	{
  		return this.col.get(index);
  	}
  	public boolean set(int index, SurgicalAuditActualProcedureVo value)
  	{
  		if(value == null)
  			return false;
  		this.col.set(index, value);
  		return true;
  	}
  	public void remove(SurgicalAuditActualProcedureVo instance)
  	{
  		if(instance != null)
  		{
  			int index = indexOf(instance);
  			if(index >= 0)
  				remove(index);
  		}
  	}
  	public boolean contains(SurgicalAuditActualProcedureVo instance)
  	{
  		return indexOf(instance) >= 0;
  	}
  	public Object clone()
  	{
  		SurgicalAuditActualProcedureVoCollection clone = new SurgicalAuditActualProcedureVoCollection();
  		
  		for(int x = 0; x < this.col.size(); x++)
  		{
  			if(this.col.get(x) != null)
  				clone.col.add((SurgicalAuditActualProcedureVo)this.col.get(x).clone());
  			else
  				clone.col.add(null);
  		}
  		
  		return clone;
  	}
  	public boolean isValidated()
  	{
  		for(int x = 0; x < col.size(); x++)
  			if(!this.col.get(x).isValidated())
  				return false;
  		return true;
  	}
  	public String[] validate()
  	{
  		return validate(null);
  	}
  	public String[] validate(String[] existingErrors)
  	{
  		if(col.size() == 0)
  			return null;
  		java.util.ArrayList<String> listOfErrors = new java.util.ArrayList<String>();
  		if(existingErrors != null)
  		{
  			for(int x = 0; x < existingErrors.length; x++)
  			{
  				listOfErrors.add(existingErrors[x]);
  			}
  		}
  		for(int x = 0; x < col.size(); x++)
  		{
  			String[] listOfOtherErrors = this.col.get(x).validate();
  			if(listOfOtherErrors != null)
  			{
  				for(int y = 0; y < listOfOtherErrors.length; y++)
  				{
  					listOfErrors.add(listOfOtherErrors[y]);
  				}
  			}
  		}
  		
  		int errorCount = listOfErrors.size();
  		if(errorCount == 0)
  			return null;
  		String[] result = new String[errorCount];
  		for(int x = 0; x < errorCount; x++)
  			result[x] = (String)listOfErrors.get(x);
  		return result;
  	}
  	public SurgicalAuditActualProcedureVoCollection sort()
  	{
  		return sort(SortOrder.ASCENDING);
  	}
  	public SurgicalAuditActualProcedureVoCollection sort(boolean caseInsensitive)
  	{
  		return sort(SortOrder.ASCENDING, caseInsensitive);
  	}
  	public SurgicalAuditActualProcedureVoCollection sort(SortOrder order)
  	{
  		return sort(new SurgicalAuditActualProcedureVoComparator(order));
  	}
  	public SurgicalAuditActualProcedureVoCollection sort(SortOrder order, boolean caseInsensitive)
  	{
  		return sort(new SurgicalAuditActualProcedureVoComparator(order, caseInsensitive));
  	}
  	@SuppressWarnings("unchecked")
  	public SurgicalAuditActualProcedureVoCollection sort(Comparator comparator)
  	{
  		Collections.sort(col, comparator);
  		return this;
  	}
  	public ims.clinical.vo.SurgicalAuditActualProcedureRefVoCollection toRefVoCollection()
  	{
  		ims.clinical.vo.SurgicalAuditActualProcedureRefVoCollection result = new ims.clinical.vo.SurgicalAuditActualProcedureRefVoCollection();
  		for(int x = 0; x < this.col.size(); x++)
  		{
  			result.add(this.col.get(x));
  		}
  		return result;
  	}
  	public SurgicalAuditActualProcedureVo[] toArray()
  	{
  		SurgicalAuditActualProcedureVo[] arr = new SurgicalAuditActualProcedureVo[col.size()];
  		col.toArray(arr);
  		return arr;
  	}
  	public Iterator<SurgicalAuditActualProcedureVo> iterator()
  	{
  		return col.iterator();
  	}
  	@Override
  	protected ArrayList getTypedCollection()
  	{
  		return col;
  	}
  	private class SurgicalAuditActualProcedureVoComparator implements Comparator
  	{
  		private int direction = 1;
  		private boolean caseInsensitive = true;
  		public SurgicalAuditActualProcedureVoComparator()
  		{
  			this(SortOrder.ASCENDING);
  		}
  		public SurgicalAuditActualProcedureVoComparator(SortOrder order)
  		{
  			if (order == SortOrder.DESCENDING)
  			{
  				direction = -1;
  			}
  		}
  		public SurgicalAuditActualProcedureVoComparator(SortOrder order, boolean caseInsensitive)
  		{
  			if (order == SortOrder.DESCENDING)
  			{
  				direction = -1;
  			}
  			this.caseInsensitive = caseInsensitive;
  		}
  		public int compare(Object obj1, Object obj2)
  		{
  			SurgicalAuditActualProcedureVo voObj1 = (SurgicalAuditActualProcedureVo)obj1;
  			SurgicalAuditActualProcedureVo voObj2 = (SurgicalAuditActualProcedureVo)obj2;
  			return direction*(voObj1.compareTo(voObj2, this.caseInsensitive));
  		}
  		public boolean equals(Object obj)
  		{
  			return false;
  		}
  	}
  	public ims.clinical.vo.beans.SurgicalAuditActualProcedureVoBean[] getBeanCollection()
  	{
  		return getBeanCollectionArray();
  	}
  	public ims.clinical.vo.beans.SurgicalAuditActualProcedureVoBean[] getBeanCollectionArray()
  	{
  		ims.clinical.vo.beans.SurgicalAuditActualProcedureVoBean[] result = new ims.clinical.vo.beans.SurgicalAuditActualProcedureVoBean[col.size()];
  