package com.guidewire.rating.flow.domain.util uses gw.api.locale.DisplayKey uses gw.api.startup.RateRoutineSourcesWriter class RateRoutinesJarGenerationStatus { private var isGenerationInProgress : boolean as GenerationInProgress @SuppressWarnings("unused") private var lastGenerationStartDate: Date as LastGenerationStartDate @SuppressWarnings("unused") private var lastGeneratedJarDate : Date as LastGeneratedJarDate private var sourcesWriter: RateRoutineSourcesWriter as SourcesWriter @SuppressWarnings("unused") private var isCanceled: boolean as readonly Canceled @SuppressWarnings("unused") private var jarPath : String as JarPath public function start() : void { isGenerationInProgress = true lastGenerationStartDate = Date.Now sourcesWriter = null isCanceled = false } public function cancel() { if (not isGenerationInProgress) { return; } isGenerationInProgress = false isCanceled = true if (sourcesWriter != null) { sourcesWriter.stop(false) } sourcesWriter = null jarPath = null } public function finish(path: String) { if (not isGenerationInProgress) { return } isGenerationInProgress = false lastGeneratedJarDate = Date.Now isCanceled = false sourcesWriter = null jarPath = path } property get CompletedPercentage() : int { if (!isGenerationInProgress) { return 100 } if (sourcesWriter == null) { // Not fully initialized yet. return 0 } if (sourcesWriter.State == Stopped) { return 100 } var numberOfRoutines = sourcesWriter.RoutineCount if (numberOfRoutines == 0) { return 0 } var numberOfProcessedRoutines = sourcesWriter.ProcessedCount return Math.min(numberOfProcessedRoutines * 100 / numberOfRoutines, 99) } property get ProgressBarStatus() : String { if (!isGenerationInProgress) { return "" } if (sourcesWriter == null or sourcesWriter.RoutineCount == 0) { return DisplayKey.get("Web.Rating.RateBooks.RatingJarGenerationInitializing") } return DisplayKey.get("Web.Rating.RateBooks.RatingJarGenerationProgress", sourcesWriter.ProcessedCount, sourcesWriter.RoutineCount) } }