Group clonedGroup = new Group(); clonedGroup.initializeFrom((Group) groupMembers.get(i));
Group originalGroup = (Group) groupMembers.get(i); Group clonedGroup = new Group(originalGroup.getFieldTag(), originalGroup.getDelimeter(), originalGroup.getFieldOrder()); clonedGroup.initializeFrom(originalGroup);
	protected void initializeFrom(FieldMap source) {		fields.clear();		fields.putAll(source.fields);		Iterator groupItr = source.groups.entrySet().iterator();		while (groupItr.hasNext()) {			Map.Entry entry = (Map.Entry) groupItr.next();			ArrayList clonedMembers = new ArrayList();			List groupMembers = ((List) entry.getValue());			for (int i = 0; i < groupMembers.size(); i++) {				// Object clonedGroup = ((Group)groupMembers.get(i)).clone();				Group clonedGroup = new Group();				clonedGroup.initializeFrom((Group) groupMembers.get(i));				clonedMembers.add(clonedGroup);			}			groups.put(entry.getKey(), clonedMembers);		}	}