/** @return */ private int GetMinRemainingRuntime() { final String methodName = "GetMinRemainingRuntime"; Logfile.WriteCalled(logLevel, STR_ClassName, methodName); int minRemainingRuntime = Integer.MAX_VALUE; try { if (this.labExperimentEngines == null) { throw new NullPointerException(STRERR_LabExperimentEngines); } /* * Get the remaining runtime for each experiment engine */ for (int unitId = 0; unitId < this.labManagement.getFarmSize(); unitId++) { /* * Get the experiment engine */ LabExperimentEngine labExperimentEngine = this.labExperimentEngines[unitId]; if (labExperimentEngine == null) { throw new NullPointerException( String.format(STRERR_LabExperimentEngineUnitId_arg, unitId)); } /* * Check to see if the experiment engine is online */ LabStatus labStatus = labExperimentEngine.GetLabStatus(); if (labStatus.isOnline() == true) { /* * Get the remaining runtime for this engine and check if this is a smaller value */ int remainingRuntime = labExperimentEngine.GetRemainingRuntime(); if (remainingRuntime < minRemainingRuntime) { minRemainingRuntime = remainingRuntime; } } } } catch (Exception ex) { Logfile.WriteError(ex.toString()); } Logfile.WriteCompleted(logLevel, STR_ClassName, methodName); return minRemainingRuntime; }