amProducerEdge = false;
    public SingleFlowRateControllable getOperations() {        if (myOperations != null)            return myOperations;        EditorPort sourcePort = (EditorPort)getSourcePort();        EditorPort destPort = (EditorPort)getDestPort();        if (sourcePort.getParent() instanceof ActiveNode){            //we're producing            SimBioModuleImpl theSimBioModuleImpl = ((ActiveNode)sourcePort.getParent()).getSimBioModuleImpl();            PassiveNode thePassiveNode = (PassiveNode)(destPort.getParent());            Class[] theProducersAllowed = thePassiveNode.getProducersAllowed();            for (int i = 0; i < theProducersAllowed.length; i++){                if (theProducersAllowed[i].isInstance(theSimBioModuleImpl)){                    //do tricky string manipulation to get correct definition                    Method definitionMethod = getOperationsMethod(theProducersAllowed[i]);                    myOperations = invokeMethod(theSimBioModuleImpl, definitionMethod);                    return myOperations;                }            }        }        else if (destPort.getParent() instanceof ActiveNode){            //we're consuming            SimBioModuleImpl theSimBioModuleImpl = ((ActiveNode)destPort.getParent()).getSimBioModuleImpl();            PassiveNode thePassiveNode = (PassiveNode)(sourcePort.getParent());            Class[] theConsumersAllowed = thePassiveNode.getConsumersAllowed();            for (int i = 0; i < theConsumersAllowed.length; i++){                if (theConsumersAllowed[i].isInstance(theSimBioModuleImpl)){                    //do tricky string manipulation to get correct definition                    Method definitionMethod = getOperationsMethod(theConsumersAllowed[i]);                    myOperations = invokeMethod(theSimBioModuleImpl, definitionMethod);                    return myOperations;                }            }        }        return null;    }