/** * Retrieves the identifying number of the relation definition that is 'allowed' between two * specified node types. The results are dependent on there being only one type of relation * between two node types (not enforced, thus unpredictable). Makes use of a typeRelNodes. * * @param snum The first objectnode type (the source) * @param dnum The second objectnode type (the destination) * @return the number of the found relation, or -1 if either no relation was found, or more than * one was found. */ public int getAllowedRelationType(int snum, int dnum) { Set<MMObjectNode> set = new HashSet<MMObjectNode>(typeRelNodes.getBySourceDestination(snum, dnum)); set.addAll(inverseTypeRelNodes.getByDestinationSource(dnum, snum)); if (set.size() != 1) { return -1; } else { MMObjectNode n = set.iterator().next(); return n.getIntValue("rnumber"); } }