public void fire() throws IllegalActionException { super.fire(); log.debug("\n\n\n--- fire"); try { String ce = opendapCEParameter.getExpression(); log.debug("Constraint Expression: " + ce); ce = createCEfromWiredPorts(ce); log.debug("Using CE: " + ce); DDS dds = dapConnection.getData(ce); // log.debug("fire(): dapConnection.getData(ce) returned DataDDS:"); // dds.print(System.out); log.debug("Squeezing arrays."); squeezeArrays(dds); log.debug("Broadcasting DAP data arrays."); broadcastDapData(dds); // log.debug("fire(): After data broadcast:"); // dds.print(System.out); } catch (Exception e) { log.error("fire() Failed: ", e); } }
/** * @param attribute The changed Attribute. * @throws ptolemy.kernel.util.IllegalActionException When bad things happen. */ public void attributeChanged(ptolemy.kernel.util.Attribute attribute) throws ptolemy.kernel.util.IllegalActionException { log.debug("attributeChanged() start."); if (attribute == opendapURLParameter || attribute == opendapCEParameter) { String url = opendapURLParameter.getExpression(); String ce = opendapCEParameter.getExpression(); if (attribute == opendapURLParameter) log.debug("--- attributeChanged() url: " + url + " Current URL: " + opendapURL); if (attribute == opendapCEParameter) log.debug("--- attributeChanged() ce: \"" + ce + "\" Current CE: \"" + opendapCE + "\""); boolean reload = false; if (!opendapURL.equals(url)) { opendapURL = url; // only reload if not empty. if (!url.equals("")) { reload = true; } } if (!opendapCE.equals(ce)) { opendapCE = ce; // *** I think this should test if url.equals(""). jhrg reload = true; } if (reload) { try { log.debug("OPeNDAP URL: " + opendapURL); dapConnection = new DConnect2(opendapURL); DDS dds = dapConnection.getDDS(opendapCE); log.debug("Got DDS."); // dds.print(System.out); log.debug("Squeezing arrays."); squeezeArrays(dds); // log.debug("Before ports configured."); // dds.print(System.out); log.debug("Configuring ports."); configureOutputPorts(dds); // log.debug("After ports configured."); // dds.print(System.out); } catch (Exception e) { e.printStackTrace(); throw new IllegalActionException( "Problem accessing " + "OPeNDAP Data Source: " + e.getMessage()); } } } // *** Remove the ODC option. jhrg else if (attribute == runODC) { BooleanToken token = (BooleanToken) runODC.getToken(); if (token.booleanValue()) { // start ODC in separate thread ODCThread tr = new ODCThread(); tr.start(); runODC.setExpression("false"); } } }