ref #9190: continue working on extracting all local issues to an extra plugin
authorKatja Luther <k.luther@bgbm.org>
Thu, 24 Sep 2020 11:50:48 +0000 (13:50 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 24 Sep 2020 11:50:48 +0000 (13:50 +0200)
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java
eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.webapp/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.webapp/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.webapp/build.properties
eu.etaxonomy.taxeditor.webapp/fragment.e4xmi
eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/server/CdmServerInfoLocal.java [deleted file]
eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/server/RemotingLoginDialogLocal.java

index 822d8116c9a94279d37854871cb9081cf231eca4..3ce4c8e3abc9b1ad71bec8651e9e6ca8ee8a7653 100644 (file)
@@ -382,7 +382,7 @@ public class CdmServerInfo {
         return result;
     }
 
-    public static List<CdmServerInfo> getCdmServers() {
+    public static List<CdmServerInfo> getCdmServers(boolean isLocal) {
         List<CdmServerInfoConfig> configList;
         File file = new File(ConfigFileUtil.perUserCdmFolderFallback(), CDM_REMOTE_SERVERS_CONFIG_FILE);
         if (file.exists()){
@@ -395,8 +395,11 @@ public class CdmServerInfo {
             serverInfoList.add(new CdmServerInfo(config));
         }
         // The local host managed server must not be in the config file, this should be moved and only added when plugin is installed
-        CdmServerInfoConfig localHostManagedConfig = new CdmServerInfoConfig(NAME_LOCALHOST_MGD, SERVER_LOCALHOST, NULL_PORT, CDMSERVER_PREFIX, false);
-        serverInfoList.add(new CdmServerInfo(localHostManagedConfig));
+        if (isLocal){
+            CdmServerInfoConfig localHostManagedConfig = new CdmServerInfoConfig(NAME_LOCALHOST_MGD, SERVER_LOCALHOST, NULL_PORT, CDMSERVER_PREFIX, false);
+            serverInfoList.add(new CdmServerInfo(localHostManagedConfig));
+        }
+
         return serverInfoList;
     }
 
index 69fc4204399f37a026703e6d045aa2db44204e97..e0e7067a894edc3384072b7d424f9680e7b06fde 100644 (file)
@@ -175,6 +175,8 @@ command.name.INSPECT_ACTIVE_SESSIONS = Inspect Active Session
 viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Classification Wizard\r
 viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxon Node Dialogue\r
 command.label.CHANGE_PASSWORD = Change password\r
+command.label.CONNECT = Connect\r
+command.label.RE-CONNECT = Re-connect\r
 wizard.name.22 = CDM light (csv)\r
 wizard.name.23 = Excel Distribution Data Update\r
 wizard.name.24 = RIS\r
index b6915a84040942d7d269d4dc2c12ffa7ca77a1c7..543614b1ab40adbcad4a95d6764878af13720b29 100644 (file)
@@ -175,6 +175,8 @@ command.name.INSPECT_ACTIVE_SESSIONS = Aktive Session untersuchen
 viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Klassifikations-Wizard
 viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxonknoten-Dialog
 command.label.CHANGE_PASSWORD = Kennwort ändern
+command.label.CONNECT = Verbinden
+command.label.RE_CONNECT = Aktualisiere Verbindung
 wizard.name.22 = CDM light (csv)
 wizard.name.23 = Excel Verbreitungsdaten Update
 wizard.name.24 = RIS
index 46df4424334bffc42fc6d996ed83e7ead5c64507..6a7ed1f4ef8057b41e48377727b9c5e0e924acfa 100644 (file)
@@ -188,17 +188,18 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     protected final int CONTROLS_MIN_HEIGHT = 23; //does not seem to work yet
 //  private final int MIN_EXP_HEIGHT = 380;
 
-    private boolean autoConnect = false;
+    protected boolean autoConnect = false;
     protected boolean loadLoginPrefs = true;
-    private boolean isDevRemoteSource = false;
+    protected boolean isDevRemoteSource = false;
+    protected boolean isLocal = false;
 
     protected Job serverJob;
     protected Object result;
 
-    private final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
+    protected final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
 
-    private String serverName;
-    private String instanceName;
+    protected String serverName;
+    protected String instanceName;
     protected CdmServerInfo selectedServerInfo;
     protected CdmInstanceInfo selectedCdmInstance;
     protected String login;
@@ -539,7 +540,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 //             }
        }
 
-    private void populateCdmServerCombo() {
+    protected void populateCdmServerCombo() {
         Job job = new Job(RETRIEVE_SERVER_INSTANCES) {
             @Override
             protected IStatus run(IProgressMonitor monitor) {
@@ -581,7 +582,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         job.schedule();
     }
     public void putAllServers() {
-        for(CdmServerInfo csii : CdmServerInfo.getCdmServers()) {
+        for(CdmServerInfo csii : CdmServerInfo.getCdmServers(isLocal)) {
             putServerInfo(csii);
             comboCdmServer.add(csii.getName());
         }
index fd2adb34c5788f3a234b653fe3723de1c392f1b4..ed8ac0da4ab9393135f9bafd0a38c29e0b8a2e49 100644 (file)
@@ -16,7 +16,8 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.expressions,
  org.eclipse.ui.forms,
  org.eclipse.ui.workbench,
- eu.etaxonomy.taxeditor.webapp
+ eu.etaxonomy.taxeditor.webapp,
+ javax.servlet
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: eu.etaxonomy.taxeditor.webapp
@@ -54,11 +55,10 @@ Import-Package: eu.etaxonomy.cdm.api.application,
  eu.etaxonomy.taxeditor.remoting.server,
  eu.etaxonomy.taxeditor.remoting.source,
  eu.etaxonomy.taxeditor.session,
 org.apache.commons.lang3,
+ org.apache.commons.lang3,
  org.eclipse.jface.resource,
  org.eclipse.ui.plugin,
  org.springframework.core.io,
  org.springframework.security.authentication,
  org.springframework.security.core
 
-
index 6751770e651d69519d343438868e7dff550ac77f..30b4630cf6d2054b6aad61d94ec6832a51c4594c 100755 (executable)
@@ -1,5 +1,5 @@
 #Properties file for eu.etaxonomy.taxeditor.webapp
-command.label.CONNECT = Connect
+command.label.connect = Connect
 command.label.RE_CONNECT = Re-Connect
-command.name.CONNECT = Connect
+command.name.connect = Connect
 command.name.RE_CONNECT = Re-Connect
\ No newline at end of file
index ed4dc13a9c64d9511fb1dfb9b5158914bdd472a1..43f9960541db756aba7ad0700d5e11263d52a22c 100755 (executable)
@@ -1,5 +1,5 @@
 #Properties file for eu.etaxonomy.taxeditor.webapp, German
-command.label.CONNECT = Verbinden
+command.label.connect = Verbinden
 command.label.RE_CONNECT = Aktualisiere Verbindung
-command.name.CONNECT = Verbinden
+command.name.connect = Verbinden
 command.name.RE_CONNECT = Aktualisiere Verbindung
\ No newline at end of file
index c1caf03bff01258d9776868c7c32003e4c9e2915..46a7a8d6eff447d14ab30daf7a143a3e81855509 100644 (file)
@@ -10,6 +10,8 @@ bin.includes = META-INF/,\
                lib/jtds-1.3.1.jar,\
                lib/mysql-connector-java-8.0.21.jar,\
                OSGI-INF/,\
+               OSGI-INF/l10n/bundle.properties,\
+               OSGI-INF/l10n/bundle_de.properties,\
                plugin.xml,\
                src/main/java/eu/etaxonomy/taxeditor/l10n/,\
                fragment.e4xmi
index b496fd0fca59ab5e7ada374f192472b0958b5658..126a180b2a48cb003582601d6b9deb70079cc6cc 100755 (executable)
@@ -21,7 +21,8 @@
     <elements xsi:type="commands:Command" xmi:id="_o0HcUIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.clone" commandName="Clone"/>
     <elements xsi:type="commands:Command" xmi:id="_-g_YcIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.delete" commandName="Delete"/>
     <elements xsi:type="commands:Command" xmi:id="_ShWvcIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.update" commandName="Update"/>
-    <elements xsi:type="commands:Command" xmi:id="_OlOO0O0HEeqksLQRVeqFGA" elementId="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow" commandName="%command.name.CONNECT"/>
+    <elements xsi:type="commands:Command" xmi:id="_OlOO0O0HEeqksLQRVeqFGA" elementId="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow" commandName="%command.name.connect"/>
+    <elements xsi:type="commands:Command" xmi:id="_3uvF0P5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.command.benutzerwechseln" commandName="Benutzer wechseln"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pVVyEJFJEeeDJpjGQES7gw" featurename="addons" parentElementId="xpath:/">
     <elements xsi:type="application:Addon" xmi:id="_q4JBkJFJEeeDJpjGQES7gw" elementId="eu.etaxonomy.taxeditor.event.EventUtility" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.event.EventUtility"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_hSGlEPv3EeqwiqpCwftRog" featurename="handlers" parentElementId="xpath:/">
     <elements xsi:type="commands:Handler" xmi:id="_j7DkUPv3EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handler.connect" contributionURI="bundleclass://eu.etaxonomy.taxeditor.webapp/eu.etaxonomy.taxeditor.webapp.handler.ShowRemotingLoginWindowHandlerE4" command="_OlOO0O0HEeqksLQRVeqFGA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_6GckEP5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.webapp/eu.etaxonomy.taxeditor.webapp.handler.SwitchUserHandlerE4" command="_3uvF0P5KEeqwiqpCwftRog"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_udC8YPv3EeqwiqpCwftRog" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.file">
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_z4gfgPv3EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handledmenuitem.commandlabelconnect" label="%command.label.CONNECT" command="_OlOO0O0HEeqksLQRVeqFGA">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_z4gfgPv3EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handledmenuitem.commandlabelconnect" label="%command.name.connect" command="_OlOO0O0HEeqksLQRVeqFGA">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_5Sv6oPv3EeqwiqpCwftRog" coreExpressionId="isCdmStoreConnected"/>
     </elements>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_1OTwcP5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handledmenuitem.benutzerwechseln" label="Benutzer wechseln"/>
   </fragments>
 </fragment:ModelFragments>
diff --git a/eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/server/CdmServerInfoLocal.java b/eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/server/CdmServerInfoLocal.java
deleted file mode 100755 (executable)
index e195b08..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
-* Copyright (C) 2020 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.webapp.server;
-
-import java.util.List;
-
-import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
-import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
-
-/**
- * @author k.luther
- * @since Sep 18, 2020
- */
-public class CdmServerInfoLocal extends CdmServerInfo {
-    /**
-     * @param parameterObject
-     */
-    public CdmServerInfoLocal(CdmServerInfoConfig parameterObject) {
-        super(parameterObject);
-        // TODO Auto-generated constructor stub
-    }
-
-
-    public static List<CdmServerInfo> getCdmServersLocal() {
-        List<CdmServerInfo> serverInfoList = CdmServerInfo.getCdmServers();
-        // The local host managed server must not be in the config file
-        CdmServerInfoConfig localHostManagedConfig = new CdmServerInfoConfig(NAME_LOCALHOST_MGD, SERVER_LOCALHOST, NULL_PORT, CDMSERVER_PREFIX, false);
-        serverInfoList.add(new CdmServerInfo(localHostManagedConfig));
-        return serverInfoList;
-    }
-}
index b483e230a98b1ebb80c01c717b6e70d73c1228cd..008ae7fccf90799ac2fc1b642b839ff24509b790 100755 (executable)
@@ -13,9 +13,7 @@ import java.io.IOException;
 import java.net.SocketTimeoutException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
@@ -64,7 +62,6 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.persistence.permission.Role;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -98,59 +95,58 @@ public class RemotingLoginDialogLocal extends RemotingLoginDialog implements ICD
 
 
 
-    protected Shell shlConnect;
-    private Text txtCdmServerStatus;
-    private Text txtCdmInstanceStatus;
-    private Combo comboCdmServer;
-    private Combo comboCdmInstance;
-    private Button btnConnect;
-
-    private Composite remotingComposite;
-    private Button btnCdmServerRefresh;
-    private Button btnCdmInstanceRefresh;
-    private Button btnStopServer;
-    private Composite loginComposite;
-    private Label lblLogin;
-    private Text txtLogin;
-    private Label lblPassword;
-    private Text txtPassword;
-    private Button btnRememberMe;
-    private Label lblDefaultLogin;
-    private Composite compAdvanced;
-    private Label lblPort;
-    private Text txtPort;
-    private Label lblServerCdmlibVersion;
-    private Text txtServerCdmlibVersion;
-    private ExpandableComposite expandableCompositeAdvanced;
-    private StyledText styledTxtMessage;
-
-    private Label lblEditorCdmlibVersion;
-    private Text txtEditorCdmlibVersion;
-    private Label lblServerSchemaVersion;
-    private Text txtServerSchemaVersion;
-    private Label lblEditorCdmVersion;
-    private Text txtEditorCdmVersion;
-
-    private final int MESSAGE_HEIGHT = 50;
-    private final int COMBO_MIN_WIDTH =200;
-    private final int CONTROLS_MIN_HEIGHT = 23; //does not seem to work yet
-//  private final int MIN_EXP_HEIGHT = 380;
-
-    private boolean autoConnect = false;
-    private boolean loadLoginPrefs = true;
-    private boolean isDevRemoteSource = false;
-
-    private Job serverJob;
-    protected Object result;
-
-    private final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
-
-    private String serverName;
-    private String instanceName;
-    private CdmServerInfo selectedServerInfo;
-    private CdmInstanceInfo selectedCdmInstance;
-    private String login;
-    private String password;
+//    protected Shell shlConnect;
+//    private Text txtCdmServerStatus;
+//    private Text txtCdmInstanceStatus;
+//
+//    private Button btnConnect;
+//
+//    private Composite remotingComposite;
+//    private Button btnCdmServerRefresh;
+//    private Button btnCdmInstanceRefresh;
+//    private Button btnStopServer;
+//    private Composite loginComposite;
+//    private Label lblLogin;
+//    private Text txtLogin;
+//    private Label lblPassword;
+//    private Text txtPassword;
+//    private Button btnRememberMe;
+//    private Label lblDefaultLogin;
+//    private Composite compAdvanced;
+//    private Label lblPort;
+//    private Text txtPort;
+//    private Label lblServerCdmlibVersion;
+//    private Text txtServerCdmlibVersion;
+//    private ExpandableComposite expandableCompositeAdvanced;
+//    private StyledText styledTxtMessage;
+//
+//    private Label lblEditorCdmlibVersion;
+//    private Text txtEditorCdmlibVersion;
+//    private Label lblServerSchemaVersion;
+//    private Text txtServerSchemaVersion;
+//    private Label lblEditorCdmVersion;
+//    private Text txtEditorCdmVersion;
+//
+//    private final int MESSAGE_HEIGHT = 50;
+//    private final int COMBO_MIN_WIDTH =200;
+//    private final int CONTROLS_MIN_HEIGHT = 23; //does not seem to work yet
+////  private final int MIN_EXP_HEIGHT = 380;
+//
+//    private boolean autoConnect = false;
+//    private boolean loadLoginPrefs = true;
+//    private boolean isDevRemoteSource = false;
+
+//    private Job serverJob;
+//    protected Object result;
+//
+//    private final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
+
+//    private String serverName;
+//    private String instanceName;
+//    private CdmServerInfo selectedServerInfo;
+//    private CdmInstanceInfo selectedCdmInstance;
+//    private String login;
+//    private String password;
 
     /**
      * Create the dialog.
@@ -160,6 +156,7 @@ public class RemotingLoginDialogLocal extends RemotingLoginDialog implements ICD
     public RemotingLoginDialogLocal(Shell parent, int style) {
         super(parent, style);
         setText(Messages.RemotingLoginDialog_LABEL_LOGIN);
+        this.isLocal = true;
     }
 
 
@@ -497,48 +494,48 @@ public class RemotingLoginDialogLocal extends RemotingLoginDialog implements ICD
                }
        }
 
-    private void populateCdmServerCombo() {
-        Job job = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
-            @Override
-            protected IStatus run(IProgressMonitor monitor) {
-                Display.getDefault().syncExec(new Runnable() {
-                    @Override
-                    public void run() {
-                        //TODO performance
-                        for(CdmServerInfo csii : CdmServerInfoLocal.getCdmServers()) {
-                            serverInfoMap.put(csii.getName(), csii);
-                            comboCdmServer.add(csii.getName());
-                        }
-                        int serverIndex = -1;
-                        if(serverName != null) {
-                            serverIndex = comboCdmServer.indexOf(serverName);
-                        }
-                        if(serverIndex == -1) {
-                            comboCdmServer.select(0);
-                            autoConnect = false;
-                        } else {
-                            comboCdmServer.select(serverIndex);
-                        }
-                        ICdmSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
-                        if(devRemoteSource != null) {
-                            isDevRemoteSource = true;
-                            String username = System.getProperty("cdm.server.dev.username"); //$NON-NLS-1$
-                            String password = System.getProperty("cdm.server.dev.password"); //$NON-NLS-1$
-                            if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
-                                txtLogin.setText(username);
-                                txtPassword.setText(password);
-                                CdmStoreLocal.connect(devRemoteSource, RemotingLoginDialogLocal.this);
-                            }
-                        } else {
-                            onRefreshCdmServer();
-                        }
-                    }
-                });
-                return Status.OK_STATUS;
-            }
-        };
-        job.schedule();
-    }
+//    private void populateCdmServerCombo() {
+//        Job job = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
+//            @Override
+//            protected IStatus run(IProgressMonitor monitor) {
+//                Display.getDefault().syncExec(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        //TODO performance
+//                        for(CdmServerInfo csii : CdmServerInfo.getCdmServers(true)) {
+//                            serverInfoMap.put(csii.getName(), csii);
+//                            comboCdmServer.add(csii.getName());
+//                        }
+//                        int serverIndex = -1;
+//                        if(serverName != null) {
+//                            serverIndex = comboCdmServer.indexOf(serverName);
+//                        }
+//                        if(serverIndex == -1) {
+//                            comboCdmServer.select(0);
+//                            autoConnect = false;
+//                        } else {
+//                            comboCdmServer.select(serverIndex);
+//                        }
+//                        ICdmSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
+//                        if(devRemoteSource != null) {
+//                            isDevRemoteSource = true;
+//                            String username = System.getProperty("cdm.server.dev.username"); //$NON-NLS-1$
+//                            String password = System.getProperty("cdm.server.dev.password"); //$NON-NLS-1$
+//                            if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
+//                                txtLogin.setText(username);
+//                                txtPassword.setText(password);
+//                                CdmStoreLocal.connect(devRemoteSource, RemotingLoginDialogLocal.this);
+//                            }
+//                        } else {
+//                            onRefreshCdmServer();
+//                        }
+//                    }
+//                });
+//                return Status.OK_STATUS;
+//            }
+//        };
+//        job.schedule();
+//    }
 
     @Override
     public void onRefreshCdmServer() {
@@ -1336,4 +1333,5 @@ public class RemotingLoginDialogLocal extends RemotingLoginDialog implements ICD
     private String Nz(String value) {
         return CdmUtils.Nz(value);
     }
+
 }