protected void createOperationalRFDs (Collection changedOpConInfoRelays) {
private void createOperationalRFDs (Collection changedOpConInfoRelays) { HashMap relayMap = new HashMap();  NonOverlappingTimeSpanSet rfdInfos = buildRFDInfos(myRFDSubscription);  NonOverlappingTimeSpanSet orgActivities = new NonOverlappingTimeSpanSet(myOrgActivitySubscription); NonOverlappingTimeSpanSet opconInfos =  buildOpConInfos(orgActivities);
  protected void createOperationalRFDs (Collection changedOpConInfoRelays) {    for (Iterator changes = changedOpConInfoRelays.iterator();	 changes.hasNext();) {      OpConInfoRelay relay = (OpConInfoRelay) changes.next();      //We don't want to pick up changes that we ourselves put on this relay       // i.e. when we are the target      //We only want to get the relay response here when we are the      // source.      TimeSpan content = (TimeSpan) relay.getContent();      ArrayList response = (ArrayList) relay.getResponse();      if (myLogger.isInfoEnabled()) {	myLogger.info(getAgentIdentifier() + " OpConInfoRelay content = " + content +		       " response = " + response);      }            if ((response == null) || 	  (response.size() < 2)) {	if (myLogger.isDebugEnabled()) {	  myLogger.debug(getAgentIdentifier() + " ignoring invalid response.");	}      } else {	String opConItemId = (String)response.get(0);	String opConTypeId = (String)response.get(1);	MessageAddress maTarget = relay.getTarget();	String relTargetAddr = (String)maTarget.getAddress();		Asset otherAsset =	  getAsset(myAssetClassName, opConItemId, opConTypeId, maTarget.getAddress());	Relationship relationship = 	  myPlanningFactory.newRelationship((Constants.Role.OPERATIONALSUBORDINATE),					    (HasRelationships) myLocalAsset,					    (HasRelationships) otherAsset,					    content.getStartTime(),					    content.getEndTime());	report(relationship);	publishRemove(relay);      }    }  }