diff --git a/.github/workflows/gradle.yaml b/.github/workflows/gradle.yaml index 9e48c42df..8282065e9 100644 --- a/.github/workflows/gradle.yaml +++ b/.github/workflows/gradle.yaml @@ -59,32 +59,32 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 - codacy-analysis-cli: - name: Codacy Analysis CLI - runs-on: ubuntu-latest - needs: pre-process - if: needs.pre-process.outputs.were-only-docs-updated != 'yes' - permissions: - actions: read - contents: read - security-events: write - steps: - - name: Checkout code - uses: actions/checkout@main - - name: Run Codacy Analysis CLI - uses: codacy/codacy-analysis-cli-action@master - with: - output: results.sarif - format: sarif - # Adjust severity of non-security issues - gh-code-scanning-compat: true - # This will handover control about PR rejection to the GitHub side - max-allowed-issues: 2147483647 - # Upload the SARIF file generated in the previous step - - name: Upload SARIF results file - uses: github/codeql-action/upload-sarif@main - with: - sarif_file: results.sarif +# codacy-analysis-cli: +# name: Codacy Analysis CLI +# runs-on: ubuntu-latest +# needs: pre-process +# if: needs.pre-process.outputs.were-only-docs-updated != 'yes' +# permissions: +# actions: read +# contents: read +# security-events: write +# steps: +# - name: Checkout code +# uses: actions/checkout@main +# - name: Run Codacy Analysis CLI +# uses: codacy/codacy-analysis-cli-action@master +# with: +# output: results.sarif +# format: sarif +# Adjust severity of non-security issues +# gh-code-scanning-compat: true +# This will handover control about PR rejection to the GitHub side +# max-allowed-issues: 2147483647 +# Upload the SARIF file generated in the previous step +# - name: Upload SARIF results file +# uses: github/codeql-action/upload-sarif@main +# with: +# sarif_file: results.sarif preflight-smoke-test-check: name: Preflight Smoke Test diff --git a/src/main/java/com/vmware/vipclient/i18n/base/instances/DateFormatting.java b/src/main/java/com/vmware/vipclient/i18n/base/instances/DateFormatting.java index f9234531a..4327d80fa 100644 --- a/src/main/java/com/vmware/vipclient/i18n/base/instances/DateFormatting.java +++ b/src/main/java/com/vmware/vipclient/i18n/base/instances/DateFormatting.java @@ -6,6 +6,8 @@ import com.vmware.vipclient.i18n.I18nFactory; import com.vmware.vipclient.i18n.l2.common.PatternCategory; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.json.JSONObject; import java.util.Locale; @@ -78,7 +80,8 @@ public String formatDate(Object obj, String pattern, String timeZone, Locale loc PatternMessage p = (PatternMessage) factory.getMessageInstance(PatternMessage.class); JSONObject localeFormatData = p.getPatternMessage(locale); if(localeFormatData != null) - dateFormatData = (JSONObject) localeFormatData.get(PatternCategory.DATES.toString()); + dateFormatData = (JSONObject) JSONUtils.getFromJSONObject(localeFormatData, PatternCategory.DATES.toString()); + // dateFormatData = (JSONObject) localeFormatData.get(PatternCategory.DATES.toString()); if (dateFormatData == null) { throw new RuntimeException("Can't format " + obj + " without pattern data!"); } @@ -106,7 +109,8 @@ public String formatDate(Object obj, String pattern, String timeZone, String lan PatternMessage p = (PatternMessage) factory.getMessageInstance(PatternMessage.class); JSONObject localeFormatData = p.getPatternMessage(language, region); if(localeFormatData != null) - dateFormatData = (JSONObject) localeFormatData.get(PatternCategory.DATES.toString()); + dateFormatData = (JSONObject) JSONUtils.getFromJSONObject(localeFormatData, PatternCategory.DATES.toString()); + // dateFormatData = (JSONObject) localeFormatData.get(PatternCategory.DATES.toString()); if (dateFormatData == null) { throw new RuntimeException("Can't format " + obj + " without pattern data!"); } diff --git a/src/main/java/com/vmware/vipclient/i18n/base/instances/TranslationMessage.java b/src/main/java/com/vmware/vipclient/i18n/base/instances/TranslationMessage.java index 371ba9462..c610721a6 100644 --- a/src/main/java/com/vmware/vipclient/i18n/base/instances/TranslationMessage.java +++ b/src/main/java/com/vmware/vipclient/i18n/base/instances/TranslationMessage.java @@ -414,8 +414,10 @@ public boolean postStrings(final Locale locale, final String component, sourcesList.addAll(sources); List removedList = new ArrayList<>(); for (JSONObject jo : sourcesList) { - String key = (String) jo.get(ConstantsKeys.KEY); - String source = (String) jo.get(ConstantsKeys.SOURCE); + String key = (String) JSONUtils.getFromJSONObject(jo, ConstantsKeys.KEY); + String source = (String) JSONUtils.getFromJSONObject(jo, ConstantsKeys.SOURCE); + // String key = (String) jo.get(ConstantsKeys.KEY); + // String source = (String) jo.get(ConstantsKeys.SOURCE); dto.setKey(key); dto.setSource(source); dto.setLocale(ConstantsKeys.LATEST); diff --git a/src/main/java/com/vmware/vipclient/i18n/formats/DateFormat.java b/src/main/java/com/vmware/vipclient/i18n/formats/DateFormat.java index 74de47b10..c86854ba1 100644 --- a/src/main/java/com/vmware/vipclient/i18n/formats/DateFormat.java +++ b/src/main/java/com/vmware/vipclient/i18n/formats/DateFormat.java @@ -16,6 +16,7 @@ import com.vmware.vipclient.i18n.exceptions.VIPJavaClientException; import com.vmware.vipclient.i18n.messages.api.url.URLUtils; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; public class DateFormat extends BaseFormat { private Logger logger = LoggerFactory.getLogger(DateFormat.class); @@ -54,12 +55,16 @@ private String getFormatFromRemote(String longDate, String pattern) { try { retJson = new JSONObject(retJsonStr); if (retJson != null) { - JSONObject dataJson = (JSONObject) retJson - .get(ConstantsKeys.DATA); + JSONObject dataJson = (JSONObject) JSONUtils.getFromJSONObject(retJson, ConstantsKeys.DATA); + // JSONObject dataJson = (JSONObject) retJson + // .get(ConstantsKeys.DATA); if (dataJson != null) { - format = dataJson.get(ConstantsKeys.FORMATTED_DATE) == null ? "" - : dataJson.get(ConstantsKeys.FORMATTED_DATE) + format = JSONUtils.getFromJSONObject(dataJson, ConstantsKeys.FORMATTED_DATE) == null ? "" + : JSONUtils.getFromJSONObject(dataJson, ConstantsKeys.FORMATTED_DATE) .toString(); + // format = dataJson.get(ConstantsKeys.FORMATTED_DATE) == null ? "" + // : dataJson.get(ConstantsKeys.FORMATTED_DATE) + // .toString(); } } } catch (JSONException e) { diff --git a/src/main/java/com/vmware/vipclient/i18n/formats/NumberFormat.java b/src/main/java/com/vmware/vipclient/i18n/formats/NumberFormat.java index 9bffd0840..08ea5d112 100644 --- a/src/main/java/com/vmware/vipclient/i18n/formats/NumberFormat.java +++ b/src/main/java/com/vmware/vipclient/i18n/formats/NumberFormat.java @@ -16,6 +16,7 @@ import com.vmware.vipclient.i18n.exceptions.VIPJavaClientException; import com.vmware.vipclient.i18n.messages.api.url.URLUtils; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; public class NumberFormat extends BaseFormat { Logger logger = LoggerFactory.getLogger(NumberFormat.class); @@ -54,12 +55,16 @@ private String getFormatFromRemote(String number, String scale) { try { retJson = new JSONObject(retJsonStr); if (retJson != null) { - JSONObject dataJson = (JSONObject) retJson - .get(ConstantsKeys.DATA); + JSONObject dataJson = (JSONObject) JSONUtils.getFromJSONObject(retJson, ConstantsKeys.DATA); + // JSONObject dataJson = (JSONObject) retJson + // .get(ConstantsKeys.DATA); if (dataJson != null) { - format = dataJson.get(ConstantsKeys.FORMATTED_NUMBER) == null ? "" - : dataJson.get(ConstantsKeys.FORMATTED_NUMBER) + format = JSONUtils.getFromJSONObject(dataJson,ConstantsKeys.FORMATTED_NUMBER) == null ? "" + : JSONUtils.getFromJSONObject(dataJson,ConstantsKeys.FORMATTED_NUMBER) .toString(); + // format = dataJson.get(ConstantsKeys.FORMATTED_NUMBER) == null ? "" + // : dataJson.get(ConstantsKeys.FORMATTED_NUMBER) + // .toString(); } } } catch (JSONException e) { diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/number/parser/IntegerDigitsParser.java b/src/main/java/com/vmware/vipclient/i18n/l2/number/parser/IntegerDigitsParser.java index 1ee67a321..3297e2a78 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/number/parser/IntegerDigitsParser.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/number/parser/IntegerDigitsParser.java @@ -7,6 +7,7 @@ import org.json.JSONObject; import com.vmware.vipclient.i18n.l2.common.PatternKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; public class IntegerDigitsParser { private JSONObject numberSymbols; @@ -17,7 +18,8 @@ public IntegerDigitsParser(JSONObject numberSymbols) { public String groupIntegerDigits(String integerDigits, int groupingSize) { if (integerDigits.length() > groupingSize) { - String localizedGroupSep = (String) numberSymbols.get(PatternKeys.GROUP); + String localizedGroupSep = (String) JSONUtils.getFromJSONObject(numberSymbols, PatternKeys.GROUP); + // String localizedGroupSep = (String) numberSymbols.get(PatternKeys.GROUP); String reverseNumStr = new StringBuilder(integerDigits).reverse().toString(); StringBuilder groupedReverseNumStr = new StringBuilder(reverseNumStr); int index; diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/plural/parser/PluralRules.java b/src/main/java/com/vmware/vipclient/i18n/l2/plural/parser/PluralRules.java index 3d2ad1d00..7655f7268 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/plural/parser/PluralRules.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/plural/parser/PluralRules.java @@ -29,6 +29,7 @@ import com.vmware.vipclient.i18n.l2.common.PatternCategory; import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.messages.service.PatternService; +import com.vmware.vipclient.i18n.util.JSONUtils; public class PluralRules implements Serializable { static Logger logger = LoggerFactory.getLogger(PluralRules.class); @@ -1247,7 +1248,8 @@ public static PluralRules forLocale(Locale locale, PluralType type) { try { JSONObject pluralPattern = new PatternService().getPatternsByCategory(locale.toLanguageTag(), PatternCategory.PLURALS.toString()); - pluralRules = (JSONObject) pluralPattern.get(PatternKeys.PLURALRULES); + pluralRules = (JSONObject) JSONUtils.getFromJSONObject(pluralPattern, PatternKeys.PLURALRULES); + // pluralRules = (JSONObject) pluralPattern.get(PatternKeys.PLURALRULES); } catch (NullPointerException e) { logger.info("Lack plural pattern!"); } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/service/NumberFormatService.java b/src/main/java/com/vmware/vipclient/i18n/l2/service/NumberFormatService.java index 271bbfb8d..da2e6aefb 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/service/NumberFormatService.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/service/NumberFormatService.java @@ -11,6 +11,8 @@ import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.l2.text.NumberFormat; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,7 +59,8 @@ public String format(Object value, String currencyCode, Integer fractionSize, St validateCurrencyCode(currencyCode); numberFormatData = getCurrencyRelatedData(localeFormatData, currencyCode); } else { - numberFormatData = (JSONObject) localeFormatData.get(PatternCategory.NUMBERS.toString()); + numberFormatData = (JSONObject) JSONUtils.getFromJSONObject(localeFormatData, PatternCategory.NUMBERS.toString()); + // numberFormatData = (JSONObject) localeFormatData.get(PatternCategory.NUMBERS.toString()); } if (numberFormatData == null) { // return (String) value; @@ -66,15 +69,19 @@ public String format(Object value, String currencyCode, Integer fractionSize, St NumberFormat numberFormat = NumberFormat.getInstance(numberFormatData, style); formatNumber = numberFormat.format(value, fractionSize); if (style == NumberFormat.PERCENTSTYLE) { - String percentSymbol = (String) ((JSONObject) numberFormatData.get(PatternKeys.NUMBERSYMBOLS)) - .get(PatternKeys.PERCENTSIGN); + String percentSymbol = (String) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(numberFormatData, PatternKeys.NUMBERSYMBOLS)) + , PatternKeys.PERCENTSIGN); + //String percentSymbol = (String) ((JSONObject) numberFormatData.get(PatternKeys.NUMBERSYMBOLS)) + // .get(PatternKeys.PERCENTSIGN); formatNumber = formatNumber.replace(String.valueOf(ConstantChars.PERCENTSIGN), percentSymbol); } else if (style == NumberFormat.CURRENCYSTYLE) { - JSONObject currencyData = (JSONObject) numberFormatData.get(PatternKeys.CURRENCY); + JSONObject currencyData = (JSONObject) JSONUtils.getFromJSONObject(numberFormatData, PatternKeys.CURRENCY); + // JSONObject currencyData = (JSONObject) numberFormatData.get(PatternKeys.CURRENCY); // String narrowCurrencySymbol = (String) currencyData.get(PatternKeys.NARROWCURRENCYSYMBOL); // String currencySymbol = narrowCurrencySymbol != null? narrowCurrencySymbol : (String) // currencyData.get(PatternKeys.CURRENCYSYMBOL); - String currencySymbol = (String) currencyData.get(PatternKeys.CURRENCYSYMBOL); + String currencySymbol = (String) JSONUtils.getFromJSONObject(currencyData, PatternKeys.CURRENCYSYMBOL); + // String currencySymbol = (String) currencyData.get(PatternKeys.CURRENCYSYMBOL); formatNumber = formatNumber.replace(String.valueOf(ConstantChars.CURRENCY_SIGN), currencySymbol); } @@ -113,7 +120,8 @@ public String format(Object value, String currencyCode, Integer fractionSize, Lo } numberFormatData = getCurrencyRelatedData(localeFormatData, actualCurrencyCode); } else { - numberFormatData = (JSONObject) localeFormatData.get(PatternCategory.NUMBERS.toString()); + numberFormatData = (JSONObject) JSONUtils.getFromJSONObject(localeFormatData, PatternCategory.NUMBERS.toString()); + // numberFormatData = (JSONObject) localeFormatData.get(PatternCategory.NUMBERS.toString()); } if (numberFormatData == null) { // return (String) value; @@ -122,15 +130,19 @@ public String format(Object value, String currencyCode, Integer fractionSize, Lo NumberFormat numberFormat = NumberFormat.getInstance(numberFormatData, style); formatNumber = numberFormat.format(value, fractionSize); if (style == NumberFormat.PERCENTSTYLE) { - String percentSymbol = (String) ((JSONObject) numberFormatData.get(PatternKeys.NUMBERSYMBOLS)) - .get(PatternKeys.PERCENTSIGN); + String percentSymbol = (String) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(numberFormatData, PatternKeys.NUMBERSYMBOLS)) + ,PatternKeys.PERCENTSIGN); + // String percentSymbol = (String) ((JSONObject) numberFormatData.get(PatternKeys.NUMBERSYMBOLS)) + // .get(PatternKeys.PERCENTSIGN); formatNumber = formatNumber.replace(String.valueOf(ConstantChars.PERCENTSIGN), percentSymbol); } else if (style == NumberFormat.CURRENCYSTYLE) { - JSONObject currencyData = (JSONObject) numberFormatData.get(PatternKeys.CURRENCY); + JSONObject currencyData = (JSONObject) JSONUtils.getFromJSONObject(numberFormatData, PatternKeys.CURRENCY); + // JSONObject currencyData = (JSONObject) numberFormatData.get(PatternKeys.CURRENCY); // String narrowCurrencySymbol = (String) currencyData.get(PatternKeys.NARROWCURRENCYSYMBOL); // String currencySymbol = narrowCurrencySymbol != null? narrowCurrencySymbol : (String) // currencyData.get(PatternKeys.CURRENCYSYMBOL); - String currencySymbol = (String) currencyData.get(PatternKeys.CURRENCYSYMBOL); + String currencySymbol = (String) JSONUtils.getFromJSONObject(currencyData, PatternKeys.CURRENCYSYMBOL); + // String currencySymbol = (String) currencyData.get(PatternKeys.CURRENCYSYMBOL); formatNumber = formatNumber.replace(String.valueOf(ConstantChars.CURRENCY_SIGN), currencySymbol); } @@ -139,17 +151,24 @@ public String format(Object value, String currencyCode, Integer fractionSize, Lo private JSONObject getCurrencyRelatedData(JSONObject allCategoriesData, String currencyCode) { JSONObject currencyFormatData = new JSONObject(); - JSONObject numberFormatData = (JSONObject) allCategoriesData.get(PatternCategory.NUMBERS.toString()); - JSONObject currencyData = (JSONObject) ((JSONObject) allCategoriesData.get(PatternKeys.CURRENCIES)) - .get(currencyCode); + JSONObject numberFormatData = (JSONObject) JSONUtils.getFromJSONObject(allCategoriesData, PatternCategory.NUMBERS.toString()); + JSONObject currencyData = (JSONObject) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(allCategoriesData, PatternKeys.CURRENCIES)) + , currencyCode); + // JSONObject numberFormatData = (JSONObject) allCategoriesData.get(PatternCategory.NUMBERS.toString()); + // JSONObject currencyData = (JSONObject) ((JSONObject) allCategoriesData.get(PatternKeys.CURRENCIES)) + // .get(currencyCode); if (currencyData == null) { throw new IllegalArgumentException("Unsupported currency code " + currencyCode + "."); } - JSONObject currencySupplementalData = (JSONObject) ((JSONObject) allCategoriesData - .get(PatternCategory.SUPPLEMENTAL.toString())).get(PatternKeys.CURRENCIES); + JSONObject currencySupplementalData = (JSONObject) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(allCategoriesData + , PatternCategory.SUPPLEMENTAL.toString())), PatternKeys.CURRENCIES); + //JSONObject currencySupplementalData = (JSONObject) ((JSONObject) allCategoriesData + // .get(PatternCategory.SUPPLEMENTAL.toString())).get(PatternKeys.CURRENCIES); JSONObject fractionData = null; try { - fractionData = (JSONObject) ((JSONObject) currencySupplementalData.get(PatternKeys.FRACTIONS)).get(currencyCode); + fractionData = (JSONObject) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(currencySupplementalData, + PatternKeys.FRACTIONS)), currencyCode); + // fractionData = (JSONObject) ((JSONObject) currencySupplementalData.get(PatternKeys.FRACTIONS)).get(currencyCode); } catch (org.json.JSONException e) { logger.info("NumberFormatService - Can't find fractionData, null will be set"); } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/DateFormat.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/DateFormat.java index d5ddf5933..d7c4ed5ad 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/DateFormat.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/DateFormat.java @@ -16,6 +16,7 @@ import com.vmware.vipclient.i18n.l2.common.ConstantChars; import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.util.FormatUtils; +import com.vmware.vipclient.i18n.util.JSONUtils; public abstract class DateFormat { public final static int DATETIME = 0; @@ -99,15 +100,24 @@ public static String getPattern(JSONObject formatData, String format) { } } if (!"".equals(patternStyle)) { - JSONObject patternObj = (JSONObject) formatData.get(patternStyle); - pattern = (String) patternObj.get(patternType); + JSONObject patternObj = (JSONObject) JSONUtils.getFromJSONObject(formatData, patternStyle); + pattern = (String) JSONUtils.getFromJSONObject(patternObj, patternType); if (PatternKeys.DATETIMEFORMATS.equalsIgnoreCase(patternStyle)) { - String datePattern = (String) ((JSONObject) formatData.get(PatternKeys.DATEFORMATS)) - .get(patternType); - String timePattern = (String) ((JSONObject) formatData.get(PatternKeys.TIMEFORMATS)) - .get(patternType); + String datePattern = (String) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(formatData, PatternKeys.DATEFORMATS)) + , patternType); + String timePattern = (String) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(formatData, PatternKeys.TIMEFORMATS)) + , patternType); pattern = FormatUtils.format(pattern, timePattern, datePattern); } + // JSONObject patternObj = (JSONObject) formatData.get(patternStyle); + // pattern = (String) patternObj.get(patternType); + // if (PatternKeys.DATETIMEFORMATS.equalsIgnoreCase(patternStyle)) { + // String datePattern = (String) ((JSONObject) formatData.get(PatternKeys.DATEFORMATS)) + // .get(patternType); + // String timePattern = (String) ((JSONObject) formatData.get(PatternKeys.TIMEFORMATS)) + // .get(patternType); + // pattern = FormatUtils.format(pattern, timePattern, datePattern); + // } } else { pattern = format; } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/DecimalFormat.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/DecimalFormat.java index 62d5f1431..7232db067 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/DecimalFormat.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/DecimalFormat.java @@ -16,6 +16,7 @@ import com.vmware.vipclient.i18n.l2.common.PatternCategory; import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.l2.number.parser.IntegerDigitsParser; +import com.vmware.vipclient.i18n.util.JSONUtils; public class DecimalFormat extends NumberFormat { Logger logger = LoggerFactory.getLogger(DecimalFormat.class); @@ -43,19 +44,26 @@ public class DecimalFormat extends NumberFormat { public DecimalFormat(JSONObject formatData, int style) { JSONObject numberFormats; if (style == NumberFormat.CURRENCYSTYLE) { - this.numberSymbols = (JSONObject) ((JSONObject) formatData.get(PatternCategory.NUMBERS.toString())) - .get(PatternKeys.NUMBERSYMBOLS); - numberFormats = (JSONObject) ((JSONObject) formatData.get(PatternCategory.NUMBERS.toString())) - .get(PatternKeys.NUMBERFORMATS); + this.numberSymbols = (JSONObject) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(formatData, PatternCategory.NUMBERS.toString())) + , PatternKeys.NUMBERSYMBOLS); + numberFormats = (JSONObject) JSONUtils.getFromJSONObject(((JSONObject) JSONUtils.getFromJSONObject(formatData, PatternCategory.NUMBERS.toString())) + , PatternKeys.NUMBERFORMATS); + // this.numberSymbols = (JSONObject) ((JSONObject) formatData.get(PatternCategory.NUMBERS.toString())) + // .get(PatternKeys.NUMBERSYMBOLS); + // numberFormats = (JSONObject) ((JSONObject) formatData.get(PatternCategory.NUMBERS.toString())) + // .get(PatternKeys.NUMBERFORMATS); this.fractionData = null; try { - this.fractionData = (JSONObject) formatData.get(PatternKeys.FRACTION); + this.fractionData = (JSONObject) JSONUtils.getFromJSONObject(formatData, PatternKeys.FRACTION); + // this.fractionData = (JSONObject) formatData.get(PatternKeys.FRACTION); } catch (org.json.JSONException e) { logger.info("Can't find fractionData, null will be set"); } } else { - this.numberSymbols = (JSONObject) formatData.get(PatternKeys.NUMBERSYMBOLS); - numberFormats = (JSONObject) formatData.get(PatternKeys.NUMBERFORMATS); + this.numberSymbols = (JSONObject) JSONUtils.getFromJSONObject(formatData, PatternKeys.NUMBERSYMBOLS); + numberFormats = (JSONObject) JSONUtils.getFromJSONObject(formatData, PatternKeys.NUMBERFORMATS); + // this.numberSymbols = (JSONObject) formatData.get(PatternKeys.NUMBERSYMBOLS); + // numberFormats = (JSONObject) formatData.get(PatternKeys.NUMBERFORMATS); } this.pattern = getPattern(numberFormats, style); this.style = style; @@ -273,7 +281,8 @@ public String parseNumber(String numStr, Integer customizedFractionSize) { IntegerDigitsParser parser = new IntegerDigitsParser(numberSymbols); String groupedIntegerDigits = parser.groupIntegerDigits(numArray[0], patternInfo.getGroupingSize()); localizedNumStr.append(groupedIntegerDigits); - String localizedDecimalSep = (String) numberSymbols.get(PatternKeys.DECIMAL); + String localizedDecimalSep = (String) JSONUtils.getFromJSONObject(numberSymbols, PatternKeys.DECIMAL); + // String localizedDecimalSep = (String) numberSymbols.get(PatternKeys.DECIMAL); if (numArray.length > 1) { localizedNumStr.append(localizedDecimalSep).append(numArray[1]); } @@ -287,13 +296,15 @@ public String parseNumber(String numStr, Integer customizedFractionSize) { private void adjustFraction4Currency(NumberPatternInfo patternInfo) { if (fractionData != null) { - int round = Integer.parseInt((String) this.fractionData.get(PatternKeys._ROUNDING)); + int round = Integer.parseInt((String) JSONUtils.getFromJSONObject(this.fractionData, PatternKeys._ROUNDING)); + // int round = Integer.parseInt((String) this.fractionData.get(PatternKeys._ROUNDING)); /* * if(round != 0){ * patternInfo.setRound(); * } */ - int digits = Integer.parseInt((String) this.fractionData.get(PatternKeys._DIGITS)); + int digits = Integer.parseInt((String) JSONUtils.getFromJSONObject(this.fractionData, PatternKeys._DIGITS)); + // int digits = Integer.parseInt((String) this.fractionData.get(PatternKeys._DIGITS)); int oldMinDigits = patternInfo.getMinimumFractionDigits(); if (oldMinDigits == patternInfo.getMaximumFractionDigits()) { patternInfo.setMinimumFractionDigits(digits); diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/NumberFormat.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/NumberFormat.java index 648be9b6b..f54c6fe02 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/NumberFormat.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/NumberFormat.java @@ -10,6 +10,7 @@ import org.json.JSONObject; import com.vmware.vipclient.i18n.l2.common.PatternKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; public abstract class NumberFormat { public static final int NUMBERSTYLE = 0; @@ -50,19 +51,19 @@ public static String getPattern(JSONObject numberFormats, int style) { String pattern = ""; switch (style) { case 0: - pattern = (String) numberFormats.get(PatternKeys.DECIMALFORMATS); + pattern = (String) JSONUtils.getFromJSONObject(numberFormats, PatternKeys.DECIMALFORMATS); break; case 1: - pattern = (String) numberFormats.get(PatternKeys.CURRENCYFORMATS); + pattern = (String) JSONUtils.getFromJSONObject(numberFormats, PatternKeys.CURRENCYFORMATS); break; case 2: - pattern = (String) numberFormats.get(PatternKeys.PERCENTFORMATS); + pattern = (String) JSONUtils.getFromJSONObject(numberFormats, PatternKeys.PERCENTFORMATS); break; case 3: - pattern = (String) numberFormats.get(PatternKeys.SCIENTIFICFORMATS); + pattern = (String) JSONUtils.getFromJSONObject(numberFormats, PatternKeys.SCIENTIFICFORMATS); break; default: - pattern = (String) numberFormats.get(PatternKeys.DECIMALFORMATS); + pattern = (String) JSONUtils.getFromJSONObject(numberFormats, PatternKeys.DECIMALFORMATS); } return pattern; } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/PatternItem.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/PatternItem.java index 95bc68780..acaff9ffd 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/PatternItem.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/PatternItem.java @@ -15,6 +15,7 @@ import com.vmware.vipclient.i18n.l2.text.parser.EraPatternParser; import com.vmware.vipclient.i18n.l2.text.parser.PatternParser; import com.vmware.vipclient.i18n.l2.text.parser.TimeZonePatternParser; +import com.vmware.vipclient.i18n.util.JSONUtils; public class PatternItem { private char type; @@ -86,7 +87,7 @@ protected PatternParser getParser(JSONObject formatData) { case 1: { // MMMM,MMM,MM,M if (length > 2) { - parser = new DateStrPatternParser((JSONObject) formatData.get("monthsFormat")); + parser = new DateStrPatternParser((JSONObject) JSONUtils.getFromJSONObject(formatData, "monthsFormat")); } else { parser = new DatePatternParser(1); } @@ -94,7 +95,7 @@ protected PatternParser getParser(JSONObject formatData) { } case 2: { // LLLL - parser = new DateStrPatternParser((JSONObject) formatData.get("monthsFormat")); + parser = new DateStrPatternParser((JSONObject) JSONUtils.getFromJSONObject(formatData, "monthsFormat")); break; } case 5: { @@ -109,16 +110,16 @@ protected PatternParser getParser(JSONObject formatData) { } case 10: { // a - parser = new AMPMPatternParser((JSONObject) formatData.get("dayPeriodsFormat")); + parser = new AMPMPatternParser((JSONObject) JSONUtils.getFromJSONObject(formatData, "dayPeriodsFormat")); break; } case 11: { // GGGG,GGG,GG,G if (length == 4) { - parser = new EraPatternParser((JSONObject) formatData.get("eras"), true); + parser = new EraPatternParser((JSONObject) JSONUtils.getFromJSONObject(formatData, "eras"), true); } else { - parser = new EraPatternParser((JSONObject) formatData.get("eras")); + parser = new EraPatternParser((JSONObject) JSONUtils.getFromJSONObject(formatData, "eras")); } break; } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/AMPMPatternParser.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/AMPMPatternParser.java index 81d65bb44..66b9b0091 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/AMPMPatternParser.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/AMPMPatternParser.java @@ -11,6 +11,7 @@ import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.l2.text.PatternItem; +import com.vmware.vipclient.i18n.util.JSONUtils; /** * The parser to parse pattern item of 'a'. @@ -29,13 +30,13 @@ public String parse(PatternItem item, Calendar cal) { if (String.valueOf(item.getType()).indexOf("a") != -1) {// dayPeriodsFormat switch (item.getLength()) { case 4: - dayPeriodsData = (JSONArray) dayPeriodsFormat.get(PatternKeys.WIDE); + dayPeriodsData = (JSONArray) JSONUtils.getFromJSONObject(dayPeriodsFormat, PatternKeys.WIDE); break; case 5: - dayPeriodsData = (JSONArray) dayPeriodsFormat.get(PatternKeys.NARROW); + dayPeriodsData = (JSONArray) JSONUtils.getFromJSONObject(dayPeriodsFormat, PatternKeys.NARROW); break; default: - dayPeriodsData = (JSONArray) dayPeriodsFormat.get(PatternKeys.ABBREVIATED); + dayPeriodsData = (JSONArray) JSONUtils.getFromJSONObject(dayPeriodsFormat, PatternKeys.ABBREVIATED); } } else {// dayPeriodsStandalone diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/DateStrPatternParser.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/DateStrPatternParser.java index f5898390a..3d35e269d 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/DateStrPatternParser.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/DateStrPatternParser.java @@ -6,6 +6,8 @@ import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.l2.text.PatternItem; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.json.JSONArray; import org.json.JSONObject; @@ -25,31 +27,31 @@ public String parse(PatternItem item, Calendar cal) { || String.valueOf(item.getType()).indexOf("L") != -1) {// monthsFormat switch (item.getLength()) { case 3: - formatData = (JSONArray) formatObj.get(PatternKeys.ABBREVIATED); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.ABBREVIATED); break; case 4: - formatData = (JSONArray) formatObj.get(PatternKeys.WIDE); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.WIDE); break; case 5: - formatData = (JSONArray) formatObj.get(PatternKeys.NARROW); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.NARROW); break; default: } } else if (String.valueOf(item.getType()).indexOf("E") != -1) {// daysFormat - formatObj = (JSONObject) formatObj.get("daysFormat"); + formatObj = (JSONObject) JSONUtils.getFromJSONObject(formatObj, "daysFormat"); switch (item.getLength()) { case 4: - formatData = (JSONArray) formatObj.get(PatternKeys.WIDE); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.WIDE); break; case 5: - formatData = (JSONArray) formatObj.get(PatternKeys.NARROW); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.NARROW); break; case 6: - formatData = (JSONArray) formatObj.get(PatternKeys.SHORT); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.SHORT); break; default: - formatData = (JSONArray) formatObj.get(PatternKeys.ABBREVIATED); + formatData = (JSONArray) JSONUtils.getFromJSONObject(formatObj, PatternKeys.ABBREVIATED); } value = value - 1;// Since the day index in Calendar starts from 1, but that in format data starts from 0, hence value need reduce one } diff --git a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/EraPatternParser.java b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/EraPatternParser.java index ab7298399..122a8c0e6 100644 --- a/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/EraPatternParser.java +++ b/src/main/java/com/vmware/vipclient/i18n/l2/text/parser/EraPatternParser.java @@ -11,6 +11,7 @@ import com.vmware.vipclient.i18n.l2.common.PatternKeys; import com.vmware.vipclient.i18n.l2.text.PatternItem; +import com.vmware.vipclient.i18n.util.JSONUtils; public class EraPatternParser implements PatternParser { @@ -29,13 +30,13 @@ public String parse(PatternItem item, Calendar cal) { JSONArray erasData = null; switch (item.getLength()) { case 4: - erasData = (JSONArray) erasFormat.get(PatternKeys.WIDE); + erasData = (JSONArray) JSONUtils.getFromJSONObject(erasFormat, PatternKeys.WIDE); break; case 5: - erasData = (JSONArray) erasFormat.get(PatternKeys.NARROW); + erasData = (JSONArray) JSONUtils.getFromJSONObject(erasFormat, PatternKeys.NARROW); break; default: - erasData = (JSONArray) erasFormat.get(PatternKeys.ABBREVIATED); + erasData = (JSONArray) JSONUtils.getFromJSONObject(erasFormat, PatternKeys.ABBREVIATED); } return erasData.get(era).toString(); } diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/BaseOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/BaseOpt.java index 9527ee67b..a90bca509 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/BaseOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/BaseOpt.java @@ -7,6 +7,7 @@ import org.json.JSONObject; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; public class BaseOpt { protected String responseStr; @@ -20,8 +21,8 @@ public Object getMessagesFromResponse(String responseStr, String node) { try { JSONObject responseObj = new JSONObject(responseStr); if (responseObj != null) { - JSONObject dataObj = (JSONObject) responseObj.get(ConstantsKeys.DATA); - msgsObj = dataObj.get(node); + JSONObject dataObj = (JSONObject) JSONUtils.getFromJSONObject(responseObj, ConstantsKeys.DATA); + msgsObj = JSONUtils.getFromJSONObject(dataObj, node); return msgsObj; } } catch (Exception e) { @@ -44,11 +45,11 @@ public Object getStatusFromResponse(String responseStr, String node) { try { JSONObject responseObj = new JSONObject(responseStr); if (responseObj != null) { - Object obj = responseObj.get(ConstantsKeys.RESPONSE); + Object obj = JSONUtils.getFromJSONObject(responseObj, ConstantsKeys.RESPONSE); if (obj != null && !obj.toString().equalsIgnoreCase("")) { JSONObject dataObj = (JSONObject) obj; if (dataObj != null) { - msgObject = dataObj.get(node); + msgObject = JSONUtils.getFromJSONObject(dataObj, node); } } } @@ -64,23 +65,23 @@ protected void parseServerResponse() throws Exception { } public Object getDataPart(JSONObject obj) { - return obj.get(ConstantsKeys.DATA); + return JSONUtils.getFromJSONObject(obj, ConstantsKeys.DATA); } public String getLocale(JSONObject obj) { - return (String) ((JSONObject)getDataPart(obj)).get(ConstantsKeys.LOCALE); + return (String) JSONUtils.getFromJSONObject(((JSONObject)getDataPart(obj)), ConstantsKeys.LOCALE); } public JSONObject getResponsePart(JSONObject obj) { - return ((JSONObject) obj.get(ConstantsKeys.RESPONSE)); + return ((JSONObject) JSONUtils.getFromJSONObject(obj, ConstantsKeys.RESPONSE)); } public int getResponseCode(JSONObject obj) { - return Integer.parseInt(getResponsePart(obj).get(ConstantsKeys.CODE).toString()); + return Integer.parseInt(JSONUtils.getFromJSONObject(getResponsePart(obj), ConstantsKeys.CODE).toString()); } public String getResponseMessage(JSONObject obj) { - return (String) getResponsePart(obj).get(ConstantsKeys.MESSAGE); + return (String) JSONUtils.getFromJSONObject(getResponsePart(obj), ConstantsKeys.MESSAGE); } public boolean isSuccess(int statusCode) { diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalLocaleOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalLocaleOpt.java index 87449af65..ea8aaaf8c 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalLocaleOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalLocaleOpt.java @@ -74,7 +74,7 @@ private Map getLanguagesNamesFromBundle(String locale) { JSONObject languagesData = new JSONObject(languagesJsonStr); if (languagesData != null) { logger.debug("Found the languages' names from local bundle for locale [{}].\n", locale); - return ((JSONObject) languagesData.get(PatternKeys.LANGUAGES)).toMap().entrySet().stream() + return ((JSONObject) JSONUtils.getFromJSONObject(languagesData, PatternKeys.LANGUAGES)).toMap().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> (String)e.getValue())); }else{ logger.warn("Didn't find the languages' names from local bundle for locale [{}].\n", locale); diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalMessagesOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalMessagesOpt.java index 3dc0cac71..4b9a11bc3 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalMessagesOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/local/LocalMessagesOpt.java @@ -14,6 +14,7 @@ import com.vmware.vipclient.i18n.util.FormatUtils; import com.vmware.vipclient.i18n.util.JSONBundleUtil; import com.vmware.vipclient.i18n.util.LocaleUtility; +import com.vmware.vipclient.i18n.util.JSONUtils; import org.json.JSONObject; import org.json.JSONTokener; import org.slf4j.Logger; @@ -48,7 +49,7 @@ public void getComponentMessages(MessageCacheItem cacheItem) { try { is = getInputStream(); JSONObject jsonObject = new JSONObject(new JSONTokener(new InputStreamReader(is, "UTF-8"))); - Map messages = ((JSONObject) jsonObject.get("messages")).toMap().entrySet().stream() + Map messages = ((JSONObject) JSONUtils.getFromJSONObject(jsonObject, "messages")).toMap().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> (String)e.getValue())); cacheItem.setCacheItem(messages, null, System.currentTimeMillis(), null); } catch (Exception e) { diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemoteL2BaseOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemoteL2BaseOpt.java index a6055c9c5..d0ecf0659 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemoteL2BaseOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemoteL2BaseOpt.java @@ -9,6 +9,8 @@ import com.vmware.vipclient.i18n.messages.api.opt.BaseOpt; import com.vmware.vipclient.i18n.messages.api.url.URLUtils; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,7 +42,7 @@ public Object getDataFromResponse(String responseBody){ try { JSONObject respBody = new JSONObject(responseBody); if (respBody != null && isSuccess(getResponseCode(respBody))) { - return respBody.get(ConstantsKeys.DATA); + return JSONUtils.getFromJSONObject(respBody, ConstantsKeys.DATA); } } catch (Exception e) { logger.error(e.getMessage()); diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemotePatternOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemotePatternOpt.java index 47e32131d..b1307afc3 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemotePatternOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/RemotePatternOpt.java @@ -12,6 +12,8 @@ import com.vmware.vipclient.i18n.messages.api.url.URLUtils; import com.vmware.vipclient.i18n.messages.api.url.V2URL; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,7 +76,7 @@ private Map getPatternsFromResponse(String responseBody) { Map categoriesObj = null; JSONObject dataObj = (JSONObject) getDataFromResponse(responseBody); if (dataObj != null && dataObj instanceof JSONObject) { - categoriesObj = ((JSONObject) dataObj.get(PatternKeys.CATEGORIES)).toMap(); + categoriesObj = ((JSONObject) JSONUtils.getFromJSONObject(dataObj, PatternKeys.CATEGORIES)).toMap(); } return categoriesObj; } diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/StringBasedOpt.java b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/StringBasedOpt.java index 0ae3d9403..1a3df2100 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/StringBasedOpt.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/api/opt/server/StringBasedOpt.java @@ -22,6 +22,8 @@ import com.vmware.vipclient.i18n.messages.api.url.V2URL; import com.vmware.vipclient.i18n.messages.dto.MessagesDTO; import com.vmware.vipclient.i18n.util.ConstantsKeys; +import com.vmware.vipclient.i18n.util.JSONUtils; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +57,7 @@ public JSONObject getComponentMessages() { public String getString() { JSONObject jo = this.getComponentMessages(); String k = dto.getKey(); - Object v = jo.get(k); + Object v = JSONUtils.getFromJSONObject(jo, k); return (v == null ? "" : (String) v); } @@ -146,7 +148,7 @@ public void fetchMultiVersionKeyMessages(MessageCacheItem cacheItem) { Map messages = new HashMap<>(); for(Object obj : dataArray){ JSONObject keyTranslationObj = (JSONObject) obj; - messages.put((String) keyTranslationObj.get(ConstantsKeys.VERSION), (String) keyTranslationObj.get(ConstantsKeys.TRANSLATION)); + messages.put((String) JSONUtils.getFromJSONObject(keyTranslationObj, ConstantsKeys.VERSION), (String) JSONUtils.getFromJSONObject(keyTranslationObj, ConstantsKeys.TRANSLATION)); } if (messages != null) { cacheItem.setCacheItem(messages, etag, timestamp, maxAgeMillis); diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/service/ComponentsService.java b/src/main/java/com/vmware/vipclient/i18n/messages/service/ComponentsService.java index 7cd948237..d1b726ad3 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/service/ComponentsService.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/service/ComponentsService.java @@ -16,6 +16,7 @@ import java.util.stream.Collectors; import com.vmware.vipclient.i18n.util.FormatUtils; +import com.vmware.vipclient.i18n.util.JSONUtils; import com.vmware.vipclient.i18n.util.LocaleUtility; import org.json.JSONArray; import org.json.JSONObject; @@ -92,8 +93,8 @@ private Map>> getTranslation(final Set localeMap = this.makeLocaleMap(localesToQuery, localesFromServer.toList().stream() .map(obj -> obj == null ? null : obj.toString()) .collect(Collectors.toList())); @@ -104,13 +105,13 @@ private Map>> getTranslation(final Set iter = bundles.iterator(); while (iter.hasNext()) { final JSONObject bundle = (JSONObject) iter.next(); - final String locale = localeMap.get((String) bundle.get(ConstantsKeys.LOCALE)); - final String comp = (String) bundle.get(ConstantsKeys.COMPONENT); + final String locale = localeMap.get((String) JSONUtils.getFromJSONObject(bundle, ConstantsKeys.LOCALE)); + final String comp = (String) JSONUtils.getFromJSONObject(bundle, ConstantsKeys.COMPONENT); JSONObject messages = null; try { - Object object = bundle.get(ConstantsKeys.MESSAGES); + Object object = JSONUtils.getFromJSONObject(bundle, ConstantsKeys.MESSAGES); if ( object instanceof JSONObject) { - messages = (JSONObject) bundle.get(ConstantsKeys.MESSAGES); + messages = (JSONObject) JSONUtils.getFromJSONObject(bundle, ConstantsKeys.MESSAGES); } } catch (JSONException e) { logger.info("can't get messages, null will be set"); diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/service/PatternService.java b/src/main/java/com/vmware/vipclient/i18n/messages/service/PatternService.java index f5fd9120e..e7fd34e31 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/service/PatternService.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/service/PatternService.java @@ -9,6 +9,7 @@ import com.vmware.vipclient.i18n.base.cache.PatternCacheItem; import com.vmware.vipclient.i18n.common.ConstantsMsg; import com.vmware.vipclient.i18n.util.FormatUtils; +import com.vmware.vipclient.i18n.util.JSONUtils; import com.vmware.vipclient.i18n.util.LocaleUtility; import org.json.JSONObject; import org.slf4j.Logger; @@ -27,7 +28,7 @@ public class PatternService { public JSONObject getPatternsByCategory(String locale, String category) { PatternCacheItem cacheItem = getPatternsByLocale(locale); JSONObject patterns = new JSONObject(cacheItem.getCachedData()); - return (JSONObject) patterns.get(category); + return (JSONObject) JSONUtils.getFromJSONObject(patterns, category); } public JSONObject getPatterns(String locale) { diff --git a/src/main/java/com/vmware/vipclient/i18n/messages/service/StringService.java b/src/main/java/com/vmware/vipclient/i18n/messages/service/StringService.java index b620074e8..1dea6010e 100644 --- a/src/main/java/com/vmware/vipclient/i18n/messages/service/StringService.java +++ b/src/main/java/com/vmware/vipclient/i18n/messages/service/StringService.java @@ -75,8 +75,8 @@ public boolean postStrings(List sources, MessagesDTO dto) { CacheService c = new CacheService(dto); Map dataMap = new HashMap<>(); for (JSONObject jo : sources) { - dataMap.put((String) jo.get(ConstantsKeys.KEY), - jo.get(ConstantsKeys.SOURCE) == null ? "" : (String) jo.get(ConstantsKeys.SOURCE)); + dataMap.put((String) JSONUtils.getFromJSONObject(jo, ConstantsKeys.KEY), + JSONUtils.getFromJSONObject(jo, ConstantsKeys.SOURCE) == null ? "" : (String) JSONUtils.getFromJSONObject(jo, ConstantsKeys.SOURCE)); } c.updateCacheOfComponent(new MessageCacheItem(dataMap)); diff --git a/src/main/java/com/vmware/vipclient/i18n/util/JSONBundleUtil.java b/src/main/java/com/vmware/vipclient/i18n/util/JSONBundleUtil.java index 221fc973b..e188080aa 100644 --- a/src/main/java/com/vmware/vipclient/i18n/util/JSONBundleUtil.java +++ b/src/main/java/com/vmware/vipclient/i18n/util/JSONBundleUtil.java @@ -17,7 +17,7 @@ public static JSONObject getMessages(Path path) { JSONObject obj = FileUtil.readJson(path); if (obj == null) return null; - return (JSONObject) obj.get("messages"); + return (JSONObject) JSONUtils.getFromJSONObject(obj, "messages"); } @Deprecated @@ -27,7 +27,7 @@ public static JSONObject getMessages(String locale, String productName, JSONObject obj = JSONBundleUtil.readJSONFile(productName, version, component, locale); if (obj != null) { - Object messages = obj.get("messages"); + Object messages = JSONUtils.getFromJSONObject(obj, "messages"); if (messages != null) { jsonMsgs = (JSONObject) messages; } diff --git a/src/main/java/com/vmware/vipclient/i18n/util/JSONUtils.java b/src/main/java/com/vmware/vipclient/i18n/util/JSONUtils.java index da545d70e..5f1201568 100644 --- a/src/main/java/com/vmware/vipclient/i18n/util/JSONUtils.java +++ b/src/main/java/com/vmware/vipclient/i18n/util/JSONUtils.java @@ -50,4 +50,13 @@ public int compare(String o1, String o2) { public static boolean isEmpty(String json) { return json == null || "".equals(json) || "{}".equals(json); } + + public static Object getFromJSONObject(JSONObject jsonObj, String key) { + try { + return jsonObj.get(key); + } catch (JSONException e) { + logger.warn(e.getMessage()); + return null; + } + } } diff --git a/src/test/resources/mockserver/mappings/mapping-i18n-api-v2-translation-products-JavaclientTest-versions-1.0.0-locales-de-components-JAVA-971r6-HTTP304.json b/src/test/resources/mockserver/mappings/mapping-i18n-api-v2-translation-products-JavaclientTest-versions-1.0.0-locales-de-components-JAVA-971r6-HTTP304.json index b77a53960..17690c1b9 100644 --- a/src/test/resources/mockserver/mappings/mapping-i18n-api-v2-translation-products-JavaclientTest-versions-1.0.0-locales-de-components-JAVA-971r6-HTTP304.json +++ b/src/test/resources/mockserver/mappings/mapping-i18n-api-v2-translation-products-JavaclientTest-versions-1.0.0-locales-de-components-JAVA-971r6-HTTP304.json @@ -1,7 +1,7 @@ { "id" : "513afaa7-2693-3dd0-ac83-b40c6e165c08", "request" : { - "url" : "/i18n/api/v2/translation/products/JavaclientTest/versions/1.0.0/locales/de/components/JAVA?pseudo=false", + "url" : "/i18n/api/v2/translation/products/JavaclientTest/versions/1.0.0/locales/dexx/components/JAVA?pseudo=false", "method" : "GET" }, "response" : {