aggregator-core/src/main/java/org/arrowhead/wp5/agg/impl/grouper/FSubgrpBuilderWgtBounded.java
@Override
	public Iterator<ChangeRecOfGroup> updateSingleGroup(
			ChangeRecOfGroup changedSuperGroup) {	
		FSubGroupList sgs;
		ChangeTracker<FGroup, ChangeRecOfGroup> gct = new ChangeTracker<FGroup, ChangeRecOfGroup>(
				ChangeRecOfGroup.getFactory());

		
		switch (changedSuperGroup.getChangeType())	{
		case ctAdded:
			sgs = this.incSubGroupsAddNew(changedSuperGroup.getGroup(), gct);
			this.subgroupHash.put(changedSuperGroup.getGroup(), sgs);			
			break;
		case ctDeleted:
			sgs = this.subgroupHash.get(changedSuperGroup.getGroup());
			if (sgs != null)
			{
				this.incSubGroupsRemoveAll(sgs, gct);			
				this.subgroupHash.remove(changedSuperGroup.getGroup()); // Remove from subgroup hash	
			}
			break;
		default:	// All other cases
			sgs = this.subgroupHash.get(changedSuperGroup.getGroup());
			if (sgs != null)
				this.incSubGroupsMaintain(sgs, gct);
			break;
		}
		return gct.iterator();
	}
// The main method that converts group changes into sub-group changes
The main method that converts group changes into sub-group changes
The main method that converts group changes into sub - group changes
@Override
	public Iterator<ChangeRecOfGroup> updateSingleGroup(
			ChangeRecOfGroup changedSuperGroup) {	
		FSubGroupList sgs;
		ChangeTracker<FGroup, ChangeRecOfGroup> gct = new ChangeTracker<FGroup, ChangeRecOfGroup>(
				ChangeRecOfGroup.getFactory());
		switch (changedSuperGroup.getChangeType())	{
		case ctAdded:
			sgs = this.incSubGroupsAddNew(changedSuperGroup.getGroup(), gct);
			this.subgroupHash.put(changedSuperGroup.getGroup(), sgs);			
			break;
		case ctDeleted:
			sgs = this.subgroupHash.get(changedSuperGroup.getGroup());
			if (sgs != null)
			{
				this.incSubGroupsRemoveAll(sgs, gct);			
				this.subgroupHash.remove(changedSuperGroup.getGroup()); 
			}
			break;
		default:	
			sgs = this.subgroupHash.get(changedSuperGroup.getGroup());
			if (sgs != null)
				this.incSubGroupsMaintain(sgs, gct);
			break;
		}
		return gct.iterator();
	}
@ Override public Iterator < ChangeRecOfGroup > updateSingleGroup ( ChangeRecOfGroup changedSuperGroup ) { FSubGroupList sgs ; ChangeTracker < FGroup , ChangeRecOfGroup > gct = new ChangeTracker < FGroup , ChangeRecOfGroup > ( ChangeRecOfGroup . getFactory ( ) ) ; switch ( changedSuperGroup . getChangeType ( ) ) { case ctAdded : sgs = this . incSubGroupsAddNew ( changedSuperGroup . getGroup ( ) , gct ) ; this . subgroupHash . put ( changedSuperGroup . getGroup ( ) , sgs ) ; break ; case ctDeleted : sgs = this . subgroupHash . get ( changedSuperGroup . getGroup ( ) ) ; if ( sgs != null ) { this . incSubGroupsRemoveAll ( sgs , gct ) ; this . subgroupHash . remove ( changedSuperGroup . getGroup ( ) ) ; } break ; default : sgs = this . subgroupHash . get ( changedSuperGroup . getGroup ( ) ) ; if ( sgs != null ) this . incSubGroupsMaintain ( sgs , gct ) ; break ; } return gct . iterator ( ) ; }
The main method that converts group changes into sub-group changes
The main method that converts group changes into sub - group changes
// Remove from subgroup hash	 // All other cases