From 58e2a4953e52dd6a0f75f414e5c7961e8a8b51eb Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 22 May 2019 17:49:07 -0400 Subject: [PATCH] 5075 update comments --- .../translators/GoogleLanguageWrapper.java | 31 ++++++++++++---- .../translators/GoogleTranslator.java | 11 ++++++ .../translators/GoogleTranslatorSettings.java | 33 +++++++++++++++++ .../GoogleTranslatorSettingsPanel.java | 37 ++++++++++++++----- 4 files changed, 94 insertions(+), 18 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleLanguageWrapper.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleLanguageWrapper.java index c08594a803..c61ed1c948 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleLanguageWrapper.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleLanguageWrapper.java @@ -20,20 +20,35 @@ package org.sleuthkit.autopsy.texttranslation.translators; import com.google.cloud.translate.Language; +/** + * Wrapper for the Language class + */ class GoogleLanguageWrapper { + private final Language language; - - GoogleLanguageWrapper(Language lang){ + + /** + * Create a new GoogleLanguageWrapper + * + * @param lang the Language object to wrap + */ + GoogleLanguageWrapper(Language lang) { language = lang; } - - Language getLanguage(){ + + /** + * Get the wrapped Language object + * + * @return the wrapped Language + */ + Language getLanguage() { return language; } - + @Override - public String toString(){ - return language.getName(); + public String toString() { + //toString overridden so that the jComboBox in the GoogleTranslatorSettingsPanel will display the name of the language + return language.getName(); } - + } diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java index 29b2e20062..783bb82446 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java @@ -35,6 +35,10 @@ import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.texttranslation.TextTranslator; import org.sleuthkit.autopsy.texttranslation.TranslationException; +/** + * TextTranslator which utilizes Google Cloud Translation to perform translation + * in Autopsy + */ @ServiceProvider(service = TextTranslator.class) public final class GoogleTranslator implements TextTranslator { @@ -44,6 +48,9 @@ public final class GoogleTranslator implements TextTranslator { private final GoogleTranslatorSettings settings = new GoogleTranslatorSettings(); private Translate translate; + /** + * Constructs a new GoogleTranslator + */ public GoogleTranslator() { // Instantiates a client settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode()); @@ -97,6 +104,10 @@ public final class GoogleTranslator implements TextTranslator { return settingsPanel; } + /** + * Load the Google Cloud Translation service give the currently saved + * settings + */ private void loadTranslator() { InputStream credentialStream = null; Credentials creds = null; diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettings.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettings.java index 94dd3a4906..55771b8c7a 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettings.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettings.java @@ -22,6 +22,9 @@ import com.google.cloud.translate.TranslateOptions; import org.apache.commons.lang3.StringUtils; import org.sleuthkit.autopsy.coreutils.ModuleSettings; +/** + * Class to handle the settings associated with the GoogleTranslator + */ public final class GoogleTranslatorSettings { private static final String DEFAULT_TARGET_LANGUAGE = TranslateOptions.getDefaultInstance().getTargetLanguage(); @@ -32,22 +35,46 @@ public final class GoogleTranslatorSettings { private String targetLanguageCode; private String credentialPath; + /** + * Construct a new GoogleTranslatorSettingsObject + */ GoogleTranslatorSettings() { loadSettings(); } + /** + * Get the target language code + * + * @return the code used to identify the target language + */ String getTargetLanguageCode() { return targetLanguageCode; } + /** + * Get the path to the JSON credentials file + * + * @return the path to the credentials file + */ String getCredentialPath() { return credentialPath; } + /** + * Set the path to the JSON credentials file + * + * @param path the path to the credentials file + */ void setCredentialPath(String path) { credentialPath = path; } + /** + * Set the target language code. If a blank code is specified it sets the + * default code instead. + * + * @param code the target language code to set + */ void setTargetLanguageCode(String code) { if (StringUtils.isBlank(code)) { targetLanguageCode = DEFAULT_TARGET_LANGUAGE; @@ -56,6 +83,9 @@ public final class GoogleTranslatorSettings { } } + /** + * Load the settings into memory from their on disk storage + */ void loadSettings() { if (!ModuleSettings.configExists(GOOGLE_TRANSLATE_NAME)) { ModuleSettings.makeConfigFile(GOOGLE_TRANSLATE_NAME); @@ -72,6 +102,9 @@ public final class GoogleTranslatorSettings { } } + /** + * Save the setting from memory to their location on disk + */ void saveSettings() { ModuleSettings.setConfigSetting(GOOGLE_TRANSLATE_NAME, TARGET_LANGUAGE_CODE_KEY, targetLanguageCode); ModuleSettings.setConfigSetting(GOOGLE_TRANSLATE_NAME, CREDENTIAL_PATH_KEY, credentialPath); diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java index cff7df78a5..5d486b4708 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java @@ -37,6 +37,9 @@ import javax.swing.filechooser.FileNameExtensionFilter; import org.apache.commons.lang3.StringUtils; import org.openide.util.NbBundle.Messages; +/** + * Settings panel for the GoogleTranslator + */ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { private static final Logger logger = Logger.getLogger(GoogleTranslatorSettingsPanel.class.getName()); @@ -58,19 +61,19 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { /** * Private method to make a temporary translation service given the current * settings and use it to retrieve the available target languages for - * population of combobox with target language with unsaved settings + * population of combobox with target language with unsaved settings. * * @return A list of Languages */ @Messages({"GoogleTranslatorSettingsPanel.errorMessage.fileNotFound=Credentials file not found, please set the location to be a valid JSON credentials file.", - "GoogleTranslatorSettingsPanel.errorMessage.unableToReadCredentials=Unable to read credentials from credentials file, please set the location to be a valid JSON credentials file.", - "GoogleTranslatorSettingsPanel.errorMessage.unableToMakeCredentials=Unable to construct credentials object from credentials file, please set the location to be a valid JSON credentials file.", - "GoogleTranslatorSettingsPanel.errorMessage.unknownFailureGetting=Failure getting list of supported languages with current credentials file.",}) - + "GoogleTranslatorSettingsPanel.errorMessage.unableToReadCredentials=Unable to read credentials from credentials file, please set the location to be a valid JSON credentials file.", + "GoogleTranslatorSettingsPanel.errorMessage.unableToMakeCredentials=Unable to construct credentials object from credentials file, please set the location to be a valid JSON credentials file.", + "GoogleTranslatorSettingsPanel.errorMessage.unknownFailureGetting=Failure getting list of supported languages with current credentials file.",}) private List getListOfTargetLanguages() { + //This method also has the side effect of more or less validating the JSON file which was selected as it is necessary to get the list of target languages try { - InputStream credentialStream = null; - Credentials creds = null; + InputStream credentialStream; + Credentials creds; try { credentialStream = new FileInputStream(credentialsPathField.getText()); } catch (FileNotFoundException ignored) { @@ -90,7 +93,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { } else { TranslateOptions.Builder builder = TranslateOptions.newBuilder(); builder.setCredentials(creds); - builder.setTargetLanguage(targetLanguageCode); + builder.setTargetLanguage(targetLanguageCode); //localize the list to the currently selected target language warningLabel.setText(""); //clear any previous warning text return builder.build().getService().listSupportedLanguages(); } @@ -102,10 +105,10 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { } /** - * Populate the target th + * Populate the target language selection combo box */ @Messages({"GoogleTranslatorSettingsPanel.errorMessage.noFileSelected=A JSON file must be selected to provide your credentials for Google Translate.", - "GoogleTranslatorSettingsPanel.errorMessage.unknownFailurePopulating=Failure populating list of supported languages with current credentials file."}) + "GoogleTranslatorSettingsPanel.errorMessage.unknownFailurePopulating=Failure populating list of supported languages with current credentials file."}) private void populateTargetLanguageComboBox() { targetLanguageComboBox.removeItemListener(listener); try { @@ -254,14 +257,28 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { private javax.swing.JLabel warningLabel; // End of variables declaration//GEN-END:variables + /** + * Get the currently selected target language code + * + * @return the target language code of the language selected in the combobox + */ String getTargetLanguageCode() { return targetLanguageCode; } + /** + * Get the currently set path to the JSON credentials file + * + * @return the path to the credentials file specified in the textarea + */ String getCredentialsPath() { return credentialsPathField.getText(); } + /** + * Listener to identfy when a combo box item has been selected and update + * the combo box to reflect that + */ private class ComboBoxSelectionListener implements ItemListener { @Override