/** * A Set of all allowed relations of a certain role between two builders. Distinction is made * between source and destination depending on passed directionality. * * @since MMBase-1.6.2 */ public Set<MMObjectNode> getAllowedRelations( int builder1, int builder2, int role, int directionality) { Set<MMObjectNode> res = new HashSet<MMObjectNode>(); if (directionality != RelationStep.DIRECTIONS_SOURCE) { res.addAll(typeRelNodes.getBySourceDestinationRole(builder1, builder2, role)); } if (directionality != RelationStep.DIRECTIONS_DESTINATION && (directionality != RelationStep.DIRECTIONS_EITHER || res.isEmpty())) { res.addAll(inverseTypeRelNodes.getByDestinationSourceRole(builder2, builder1, role)); } return res; }