String parent_kind = (String) relationship.getValue(parent_kind_slot); String parent_slot = (String) relationship.getValue(parent_slot_slot); Object parent_value = relationship.getValue(parent_value_slot);
Frame parent = getRelate(relationship, parent_kind_slot, parent_slot_slot, parent_value_slot);
    private boolean establishParentage(Frame relationship)    {	synchronized (parents) {	    // cache a parent-child relationship	    String parent_kind = (String)		relationship.getValue(parent_kind_slot);	    String parent_slot = (String)		relationship.getValue(parent_slot_slot);	    Object parent_value = relationship.getValue(parent_value_slot);	    String child_kind = (String)		relationship.getValue(child_kind_slot);	    String child_slot = (String)		relationship.getValue(child_slot_slot);	    Object child_value = relationship.getValue(child_value_slot);	    Frame parent = findFrame(parent_kind, parent_slot, parent_value);	    Frame child = findFrame(child_kind, child_slot, child_value);	    if (parent == null || child == null) {		// Queue for later? 		if (log.isInfoEnabled())		    log.info("Parent or child is missing");		synchronized (pendingParentage) {		    pendingParentage.add(relationship);		}		return false;	    } else {		parents.put(child, parent);		if (log.isInfoEnabled())		    log.info("Parent of " +child+ " is " +parent);		return true;	    }	}    }