private ORASSNode processBinaryRel(String relName, ORASSNode parent) throws MainException{
		Vector<ErdNode> links = rels.get(relName).getLinks(); // links should have only 2 elements
		
		if (links.size() > 2){
			throw new MainException("Binary relationship" + relName + "has more than 2 links");
		}
		
		for(int i=0; i<links.size(); i++){
			ErdNode relatedNode = links.get(i);
			logger.info("Relationship: "+relName+" related node name: "+relatedNode.getTableName());
			if(!relatedNode.getTableName().equals(parent.getName())){
				ErdNodeType nodeType = relatedNode.getErdNodeType();
				if(nodeType == ErdNodeType.ENTITY_TYPE || nodeType == ErdNodeType.WEAK_ENTITY_TYPE){
					// Relationship is connected with an entity: process as normal
					if(!processedNodes.contains(relatedNode.getTableName())){
						ORASSNode child = processEntity(relatedNode);
						// Add the attributes of the relationship to the child entity
						processRelAttributes(relName,child);
						// Add the related entity as a child of the parent
						parent.addChildren(child);
						parent.addChildRelation(child, rels.get(relName).getOriginalTableName());
						logger.info("add child " + child.getName() + " to " + parent.getName());
					}
				}else {
					// Relationship is related to a relationship ==> Aggregation
					processRelationship(relatedNode, parent);
				}
			}
		}
		return parent;
		//logger.info("processed binary relationship " +  relName);
	}