package gw.bizrules.pcf uses com.guidewire.bizrules.pcf.ReflectivePopupPusher uses com.guidewire.bizrules.management.BizRulesVersionControllerInternal uses com.google.common.collect.ImmutableList uses gw.api.database.Query uses gw.api.locale.DisplayKey uses gw.bizrules.management.RuleExportRequest uses gw.pl.persistence.type.EntityTypeReference uses gw.util.Pair /** * A helper class to initiate Rule Export from the UI. */ class RuleExportPageHelper { final var _navigationSupport: BizRulesPageNavigationSupport as NavigationSupport final var _exportRequest: RuleExportRequest private construct(navigationSupport: BizRulesPageNavigationSupport, exportRequest: RuleExportRequest) { _navigationSupport = navigationSupport _exportRequest = exportRequest } property get NoDeployedDrafts(): RuleExportRequest.ExcludedDraftInfo[] { return getExcludedDrafts(\e -> e.ExportingVersion == null && !e.DeploymentUncertainty) } property get PreviouslyDeployedDrafts(): RuleExportRequest.ExcludedDraftInfo[] { return getExcludedDrafts(\e -> e.ExportingVersion != null && !e.DeploymentUncertainty) } property get DraftsWithDeploymentUncertainty(): RuleExportRequest.ExcludedDraftInfo[] { return getExcludedDrafts(\e -> e.DeploymentUncertainty) } private function getExcludedDrafts(filter: block(RuleExportRequest.ExcludedDraftInfo): boolean): RuleExportRequest.ExcludedDraftInfo[] { return _exportRequest.Exclusions.where(filter).sortBy(\e -> e.DraftVersion.Rule.Name).toTypedArray() } /** * @deprecated 10.0.0 Use * {@link #exportAll(BizRulesPageNavigationSupport, EntityTypeReference, Query)} instead. */ @java.lang.Deprecated static reified function exportAll(navigationSupport: BizRulesPageNavigationSupport, query: Query) { final var controller = navigationSupport.VersionController as BizRulesVersionControllerInternal exportAll(navigationSupport, controller.getRuleTypeReference() as EntityTypeReference, query) } static function exportAll(navigationSupport: BizRulesPageNavigationSupport, ruleTypeReference: EntityTypeReference, query: Query) { var exportRequest = navigationSupport.VersionController .ExportImportController.createExportRequest(ruleTypeReference, query) var helper = new RuleExportPageHelper(navigationSupport, exportRequest) if (exportRequest.Exclusions.Empty) { helper.exportAllRulesToFileNoConfirm() } else { ReflectivePopupPusher.pushPopupByIType("RuleExportAllConfirmationPopup", ImmutableList.of(Pair.make(RuleExportPageHelper, helper))) } } /** * @deprecated 10.0.0 Use * {@link #exportSelected(BizRulesPageNavigationSupport, EntityTypeReference, List)} instead. */ @java.lang.Deprecated static reified function exportSelected(navigationSupport: BizRulesPageNavigationSupport, versions: List) { final var controller = navigationSupport.VersionController as BizRulesVersionControllerInternal exportSelected(navigationSupport, controller.getRuleTypeReference() as EntityTypeReference, versions) } static function exportSelected(navigationSupport: BizRulesPageNavigationSupport, ruleTypeReference: EntityTypeReference, versions: List) { if(versions.size() == 0) { SelectedRulesWarningHelper.showWarning(true, DisplayKey.get("BizRules.Export.NoRuleIsSelectedToExport")) return } navigationSupport.VersionController.ExportImportController.createExportRequest(ruleTypeReference, versions) .makeSureNoExclusions() .startExportToFile() navigationSupport.goToExportImportStatusPage() } function exportAllRulesToFileNoConfirm() { _exportRequest.startExportToFile() _navigationSupport.goToExportImportStatusPage() } }