code: public boolean objectAdded (DEvent event, DObject target)
      {
          ObjectAddedEvent oae = (ObjectAddedEvent)event;
          int oid = oae.getOid();
  
          // ensure that the target object exists
          if (!_objects.containsKey(oid)) {
              log.info("Rejecting object added event of non-existent object",
                       "refferOid", target.getOid(), "reffedOid", oid);
              return false;
          }
  
          // get the reference vector for the referenced object. we use bare arrays rather than
          // something like an array list to conserve memory. there will be many objects and
          // references
          Reference[] refs = _refs.get(oid);
          if (refs == null) {
              refs = new Reference[DEFREFVEC_SIZE];
              _refs.put(oid, refs);
          }
  
          // determine where to add the reference
          Reference ref = new Reference(target.getOid(), oae.getName(), oid);
          int rpos = -1;
          for (int ii = 0; ii < refs.length; ii++) {
              if (ref.equals(refs[ii])) {
                  log.warning("Ignoring request to track existing reference " + ref + ".");
                  return true;
              } else if (refs[ii] == null && rpos == -1) {
                  rpos = ii;
              }
          }
  
          // expand the refvec if necessary
          if (rpos == -1) {
              Reference[] nrefs = new Reference[refs.length*2];
              System.arraycopy(refs, 0, nrefs, 0, refs.length);
              rpos = refs.length;
              _refs.put(oid, refs = nrefs);
          }
  
          // finally add the reference
          refs[rpos] = ref;
  
  //        log.info("Tracked reference " + ref + ".");
          return true;
      }
docs: Called as a helper for <code>ObjectAddedEvent</code> events. It updates the object/oid list
  tracking structures.
  
  @return true if the event should be dispatched, false if it should be aborted.