class JournalArticleResolversImpl implements JournalArticleResolvers {

    @Override
    public DataFetcher<JournalArticle> updateJournalArticleDataFetcher() {
        return environment -> {
            long userId = util.getLongArg(environment, "userId", util.getDefaultUserId());
            long groupId = util.getLongArg(environment, "groupId");
            long folderId = util.getLongArg(environment, "folderId");
            String articleId = util.getStringArg(environment, "articleId");
            double version = util.getDoubleArg(environment, "version", 1);
            Map<Locale, String> titleMap = util.getTranslatedArg(environment, "titleMap");
            Map<Locale, String> descriptionMap = util.getTranslatedArg(environment, "descriptionMap");
            Map<Locale, String> friendlyURLMap = util.getTranslatedArg(environment, "friendlyURLMap");
            String content = util.getStringArg(environment, "content");
            String ddmStructureKey = util.getStringArg(environment, "ddmStructureKey");
            String ddmTemplateKey = util.getStringArg(environment, "ddmTemplateKey");
            String layoutUuid = util.getStringArg(environment, "layoutUuid");
            int displayDateMonth = util.getIntArg(environment, "displayDateMonth");
            int displayDateDay = util.getIntArg(environment, "displayDateDay");
            int displayDateYear = util.getIntArg(environment, "displayDateYear");
            int displayDateHour = util.getIntArg(environment, "displayDateHour");
            int displayDateMinute = util.getIntArg(environment, "displayDateMinute");
            int expirationDateMonth = util.getIntArg(environment, "expirationDateMonth");
            int expirationDateDay = util.getIntArg(environment, "expirationDateDay");
            int expirationDateYear = util.getIntArg(environment, "expirationDateYear");
            int expirationDateHour = util.getIntArg(environment, "expirationDateHour");
            int expirationDateMinute = util.getIntArg(environment, "expirationDateMinute");
            boolean neverExpire = util.getBooleanArg(environment, "neverExpire", true);
            int reviewDateMonth = util.getIntArg(environment, "reviewDateMonth");
            int reviewDateDay = util.getIntArg(environment, "reviewDateDay");
            int reviewDateYear = util.getIntArg(environment, "reviewDateYear");
            int reviewDateHour = util.getIntArg(environment, "reviewDateHour");
            int reviewDateMinute = util.getIntArg(environment, "reviewDateMinute");
            boolean neverReview = util.getBooleanArg(environment, "neverReview", true);
            boolean indexable = util.getBooleanArg(environment, "indexable", true);
            String articleURL = util.getStringArg(environment, "articleURL");
            ServiceContext serviceContext = new ServiceContext();

            return journalArticleLocalService.updateArticle(
                    userId,
                    groupId,
                    folderId,
                    articleId,
                    version,
                    titleMap,
                    descriptionMap,
                    friendlyURLMap,
                    content,
                    ddmStructureKey,
                    ddmTemplateKey,
                    layoutUuid,
                    displayDateMonth,
                    displayDateDay,
                    displayDateYear,
                    displayDateHour,
                    displayDateMinute,
                    expirationDateMonth,
                    expirationDateDay,
                    expirationDateYear,
                    expirationDateHour,
                    expirationDateMinute,
                    neverExpire,
                    reviewDateMonth,
                    reviewDateDay,
                    reviewDateYear,
                    reviewDateHour,
                    reviewDateMinute,
                    neverReview,
                    indexable,
                    false,
                    null,
                    null,
                    null,
                    articleURL,
                    serviceContext);
        };
    }

}