public boolean add(AccessibleRelation relation){
  if (relations == null) {
    relations=new Vector();
  }
  AccessibleRelation existingRelation=get(relation.getKey());
  if (existingRelation == null) {
    relations.addElement(relation);
    return true;
  }
 else {
    Object[] existingTarget=existingRelation.getTarget();
    Object[] newTarget=relation.getTarget();
    int mergedLength=existingTarget.length + newTarget.length;
    Object[] mergedTarget=new Object[mergedLength];
    for (int i=0; i < existingTarget.length; i++) {
      mergedTarget[i]=existingTarget[i];
    }
    for (int i=existingTarget.length, j=0; i < mergedLength; i++, j++) {
      mergedTarget[i]=newTarget[j];
    }
    existingRelation.setTarget(mergedTarget);
  }
  return true;
}

public boolean add ( AccessibleRelation relation ) { if ( relations == null ) { relations = new Vector ( ) ; } AccessibleRelation existingRelation = get ( relation . getKey ( ) ) ; if ( existingRelation == null ) { relations . addElement ( relation ) ; return true ; } else { Object [ ] existingTarget = existingRelation . getTarget ( ) ; Object [ ] newTarget = relation . getTarget ( ) ; int mergedLength = existingTarget . length + newTarget . length ; Object [ ] mergedTarget = new Object [ mergedLength ] ; for ( int i = 0 ; i < existingTarget . length ; i ++ ) { mergedTarget [ i ] = existingTarget [ i ] ; } for ( int i = existingTarget . length , j = 0 ; i < mergedLength ; i ++ , j ++ ) { mergedTarget [ i ] = newTarget [ j ] ; } existingRelation . setTarget ( mergedTarget ) ; } return true ; }
adds a new relation to the current relation set . if the relation is already in the relation set , the target ( s ) of the specified relation is merged with the target ( s ) of the existing relation . otherwise , the new relation is added to the relation set .
