Example usage for com.liferay.portal.kernel.exception LocaleException getSourceAvailableLocales

List of usage examples for com.liferay.portal.kernel.exception LocaleException getSourceAvailableLocales

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.exception LocaleException getSourceAvailableLocales.

Prototype

public Collection<Locale> getSourceAvailableLocales() 

Source Link

Usage

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public JSONObject getExceptionMessagesJSONObject(Locale locale, Exception e,
        ExportImportConfiguration exportImportConfiguration) {

    JSONObject exceptionMessagesJSONObject = JSONFactoryUtil.createJSONObject();

    String errorMessage = StringPool.BLANK;
    JSONArray errorMessagesJSONArray = null;
    int errorType = 0;
    JSONArray warningMessagesJSONArray = null;

    ResourceBundle resourceBundle = ResourceBundleUtil.getBundle("content.Language", locale, getClass());

    Throwable cause = e.getCause();

    if (e instanceof DuplicateFileEntryException) {
        errorMessage = LanguageUtil.get(locale, "please-enter-a-unique-document-name");
        errorType = ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION;
    } else if (e instanceof FileExtensionException) {
        errorMessage = LanguageUtil.format(locale,
                "document-names-must-end-with-one-of-the-following-extensions", ".lar", false);
        errorType = ServletResponseConstants.SC_FILE_EXTENSION_EXCEPTION;
    } else if (e instanceof FileNameException) {
        errorMessage = LanguageUtil.get(locale, "please-enter-a-file-with-a-valid-file-name");
        errorType = ServletResponseConstants.SC_FILE_NAME_EXCEPTION;
    } else if (e instanceof FileSizeException || e instanceof LARFileSizeException) {

        if ((exportImportConfiguration != null) && ((exportImportConfiguration
                .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_LOCAL)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_REMOTE)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_PORTLET))) {

            errorMessage = LanguageUtil.get(locale,
                    "file-size-limit-exceeded.-please-ensure-that-the-file-"
                            + "does-not-exceed-the-file-size-limit-in-both-the-"
                            + "live-environment-and-the-staging-environment");
        } else {//from w w w .jav a 2 s. co  m
            errorMessage = LanguageUtil.format(locale,
                    "please-enter-a-file-with-a-valid-file-size-no-larger-" + "than-x",
                    TextFormatter.formatStorageSize(_dlValidator.getMaxAllowableSize(), locale), false);
        }

        errorType = ServletResponseConstants.SC_FILE_SIZE_EXCEPTION;
    } else if (e instanceof LARTypeException) {
        LARTypeException lte = (LARTypeException) e;

        if (lte.getType() == LARTypeException.TYPE_COMPANY_GROUP) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    "global-site");
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_PROTOTYPE) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    LanguageUtil.get(locale, "page-template"));
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_SET) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x", "site");
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_SET_PROTOTYPE) {

            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    LanguageUtil.get(locale, "site-template"));
        } else {
            errorMessage = LanguageUtil.format(resourceBundle, "uploaded-lar-file-type-x-does-not-match-x",
                    new Object[] { lte.getActualLARType(),
                            StringUtil.merge(lte.getExpectedLARTypes(), StringPool.COMMA_AND_SPACE) });
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LARFileException) {
        LARFileException lfe = (LARFileException) e;

        if (lfe.getType() == LARFileException.TYPE_INVALID_MANIFEST) {
            errorMessage = LanguageUtil.format(resourceBundle, "invalid-manifest.xml-x", lfe.getMessage());
        } else if (lfe.getType() == LARFileException.TYPE_MISSING_MANIFEST) {
            errorMessage = LanguageUtil.get(resourceBundle, "missing-manifest.xml");
        } else {
            errorMessage = LanguageUtil.get(locale, "please-specify-a-lar-file-to-import");
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LayoutImportException || cause instanceof LayoutImportException) {

        LayoutImportException lie = null;

        if (e instanceof LayoutImportException) {
            lie = (LayoutImportException) e;
        } else {
            lie = (LayoutImportException) cause;
        }

        if (lie.getType() == LayoutImportException.TYPE_WRONG_BUILD_NUMBER) {

            errorMessage = LanguageUtil.format(resourceBundle,
                    "lar-build-number-x-does-not-match-portal-build-number-x", lie.getArguments());
        } else if (lie.getType() == LayoutImportException.TYPE_WRONG_LAR_SCHEMA_VERSION) {

            errorMessage = LanguageUtil.format(resourceBundle,
                    "lar-schema-version-x-does-not-match-deployed-export-" + "import-schema-version-x",
                    lie.getArguments());
        } else if (lie.getType() == LayoutImportException.TYPE_WRONG_PORTLET_SCHEMA_VERSION) {

            Object[] arguments = lie.getArguments();

            Portlet portlet = _portletLocalService.getPortletById((String) arguments[1]);

            arguments[1] = portlet.getDisplayName();

            errorMessage = LanguageUtil.format(resourceBundle,
                    "portlet's-schema-version-x-in-the-lar-is-not-valid-for-"
                            + "the-deployed-portlet-x-with-schema-version-x",
                    lie.getArguments());
        } else {
            errorMessage = e.getLocalizedMessage();
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LayoutPrototypeException) {
        LayoutPrototypeException lpe = (LayoutPrototypeException) e;

        StringBundler sb = new StringBundler(4);

        sb.append("the-lar-file-could-not-be-imported-because-it-");
        sb.append("requires-page-templates-or-site-templates-that-could-");
        sb.append("not-be-found.-please-import-the-following-templates-");
        sb.append("manually");

        errorMessage = LanguageUtil.get(resourceBundle, sb.toString());

        errorMessagesJSONArray = JSONFactoryUtil.createJSONArray();

        List<Tuple> missingLayoutPrototypes = lpe.getMissingLayoutPrototypes();

        for (Tuple missingLayoutPrototype : missingLayoutPrototypes) {
            JSONObject errorMessageJSONObject = JSONFactoryUtil.createJSONObject();

            String layoutPrototypeUuid = (String) missingLayoutPrototype.getObject(1);

            errorMessageJSONObject.put("info", layoutPrototypeUuid);

            String layoutPrototypeName = (String) missingLayoutPrototype.getObject(2);

            errorMessageJSONObject.put("name", layoutPrototypeName);

            String layoutPrototypeClassName = (String) missingLayoutPrototype.getObject(0);

            errorMessageJSONObject.put("type",
                    ResourceActionsUtil.getModelResource(locale, layoutPrototypeClassName));

            errorMessagesJSONArray.put(errorMessageJSONObject);
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LocaleException) {
        LocaleException le = (LocaleException) e;

        errorMessage = LanguageUtil.format(locale,
                "the-available-languages-in-the-lar-file-x-do-not-match-the-" + "site's-available-languages-x",
                new String[] { StringUtil.merge(le.getSourceAvailableLocales(), StringPool.COMMA_AND_SPACE),
                        StringUtil.merge(le.getTargetAvailableLocales(), StringPool.COMMA_AND_SPACE) },
                false);

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof MissingReferenceException) {
        MissingReferenceException mre = (MissingReferenceException) e;

        if ((exportImportConfiguration != null) && ((exportImportConfiguration
                .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_LOCAL)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_REMOTE)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_PORTLET))) {

            errorMessage = LanguageUtil.get(locale, "there-are-missing-references-that-could-not-be-found-in-"
                    + "the-live-environment-the-following-elements-are-" + "published-from-their-own-site");
        } else {
            errorMessage = LanguageUtil.get(locale,
                    "there-are-missing-references-that-could-not-be-found-in-" + "the-current-site");
        }

        MissingReferences missingReferences = mre.getMissingReferences();

        errorMessagesJSONArray = getErrorMessagesJSONArray(locale,
                missingReferences.getDependencyMissingReferences());

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
        warningMessagesJSONArray = getWarningMessagesJSONArray(locale,
                missingReferences.getWeakMissingReferences());
    } else if (e instanceof PortletDataException) {
        PortletDataException pde = (PortletDataException) e;

        String referrerClassName = pde.getStagedModelClassName();
        String referrerDisplayName = pde.getStagedModelDisplayName();

        String modelResource = ResourceActionsUtil.getModelResource(locale, referrerClassName);

        if (pde.getType() == PortletDataException.DELETE_PORTLET_DATA) {
            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-deleting-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-deleting-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.EXPORT_PORTLET_DATA) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-exporting-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-exporting-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.IMPORT_PORTLET_DATA) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-importing-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-importing-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.INVALID_GROUP) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-it-is-not-in-the-" + "currently-exported-group",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.MISSING_DEPENDENCY) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-has-missing-references-that-could-not-be-found-" + "during-the-process",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.PREPARE_MANIFEST_SUMMARY) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-preparing-its-" + "manifest-has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-preparing-its-" + "manifest-has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.STATUS_IN_TRASH) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-it-is-in-the-" + "recycle-bin",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.STATUS_UNAVAILABLE) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-its-workflow-" + "status-is-not-exportable",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (Validator.isNotNull(referrerDisplayName)) {
            errorMessage = LanguageUtil.format(resourceBundle,
                    "the-following-error-occurred-while-processing-the-x-x-x",
                    new String[] { modelResource, referrerDisplayName, e.getLocalizedMessage() });
        } else {
            errorMessage = e.getLocalizedMessage();
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof PortletIdException) {
        PortletIdException pie = (PortletIdException) e;

        Portlet portlet = _portletLocalService.getPortletById(pie.getMessage());

        errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                portlet.getDisplayName() + " Portlet");

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else {
        errorMessage = e.getLocalizedMessage();
        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    }

    exceptionMessagesJSONObject.put("message", errorMessage);

    if ((errorMessagesJSONArray != null) && (errorMessagesJSONArray.length() > 0)) {

        exceptionMessagesJSONObject.put("messageListItems", errorMessagesJSONArray);
    }

    exceptionMessagesJSONObject.put("status", errorType);

    if ((warningMessagesJSONArray != null) && (warningMessagesJSONArray.length() > 0)) {

        exceptionMessagesJSONObject.put("warningMessages", warningMessagesJSONArray);
    }

    return exceptionMessagesJSONObject;
}