浏览代码

Merge pull request #339 from kw-udon/dev

Refactoring some actions
Shinsuke Sugaya 9 年之前
父节点
当前提交
dcc2c96771
共有 23 个文件被更改,包括 406 次插入428 次删除
  1. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/boostdocumentrule/AdminBoostdocumentruleAction.java
  2. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java
  3. 14 17
      src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java
  4. 11 9
      src/main/java/org/codelibs/fess/app/web/admin/dict/kuromoji/AdminDictKuromojiAction.java
  5. 13 13
      src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java
  6. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/fileauthentication/AdminFileauthenticationAction.java
  7. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java
  8. 11 10
      src/main/java/org/codelibs/fess/app/web/admin/group/AdminGroupAction.java
  9. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java
  10. 19 16
      src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java
  11. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/overlappinghost/AdminOverlappinghostAction.java
  12. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/pathmapping/AdminPathmappingAction.java
  13. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/requestheader/AdminRequestheaderAction.java
  14. 11 10
      src/main/java/org/codelibs/fess/app/web/admin/role/AdminRoleAction.java
  15. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/roletype/AdminRoletypeAction.java
  16. 21 22
      src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java
  17. 21 60
      src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java
  18. 36 48
      src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java
  19. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/suggestbadword/AdminSuggestbadwordAction.java
  20. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/suggestelevateword/AdminSuggestelevatewordAction.java
  21. 15 15
      src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java
  22. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/webauthentication/AdminWebauthenticationAction.java
  23. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/boostdocumentrule/AdminBoostdocumentruleAction.java

@@ -171,7 +171,6 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createBoostDocumentRule(form).ifPresent(entity -> {
         createBoostDocumentRule(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             boostDocumentRuleService.store(entity);
             boostDocumentRuleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -185,7 +184,6 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createBoostDocumentRule(form).ifPresent(entity -> {
         createBoostDocumentRule(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             boostDocumentRuleService.store(entity);
             boostDocumentRuleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
 
 
-    protected OptionalEntity<BoostDocumentRule> createBoostDocumentRule(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<BoostDocumentRule> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final BoostDocumentRule entity = new BoostDocumentRule();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new BoostDocumentRule()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return boostDocumentRuleService.getBoostDocumentRule(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return boostDocumentRuleService.getBoostDocumentRule(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -241,6 +232,17 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<BoostDocumentRule> createBoostDocumentRule(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java

@@ -196,7 +196,6 @@ public class AdminDataconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createDataConfig(form).ifPresent(entity -> {
         createDataConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             dataConfigService.store(entity);
             dataConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -210,7 +209,6 @@ public class AdminDataconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createDataConfig(form).ifPresent(entity -> {
         createDataConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             dataConfigService.store(entity);
             dataConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -236,27 +234,20 @@ public class AdminDataconfigAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<DataConfig> createDataConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<DataConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final DataConfig entity = new DataConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new DataConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return dataConfigService.getDataConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return dataConfigService.getDataConfig(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -265,6 +256,17 @@ public class AdminDataconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<DataConfig> createDataConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());

+ 14 - 17
src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java

@@ -33,6 +33,7 @@ import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.exception.FessSystemException;
 import org.codelibs.fess.exception.FessSystemException;
 import org.codelibs.fess.helper.SystemHelper;
 import org.codelibs.fess.helper.SystemHelper;
+import org.dbflute.optional.OptionalEntity;
 import org.lastaflute.web.Execute;
 import org.lastaflute.web.Execute;
 import org.lastaflute.web.callback.ActionRuntime;
 import org.lastaflute.web.callback.ActionRuntime;
 import org.lastaflute.web.response.ActionResponse;
 import org.lastaflute.web.response.ActionResponse;
@@ -177,10 +178,11 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
 
 
     @Execute
     @Execute
     public StreamResponse download(final DesignForm form) {
     public StreamResponse download(final DesignForm form) {
-        final File file = getTargetFile(form);
+        File file = getTargetFile(form).get();
         if (file == null) {
         if (file == null) {
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
         }
         }
+
         return asStream(file.getName()).stream(out -> {
         return asStream(file.getName()).stream(out -> {
             try (FileInputStream fis = new FileInputStream(file)) {
             try (FileInputStream fis = new FileInputStream(file)) {
                 out.write(fis);
                 out.write(fis);
@@ -191,14 +193,14 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
     @Execute
     @Execute
     //(token = TxToken.VALIDATE)
     //(token = TxToken.VALIDATE)
     public HtmlResponse delete(final DesignForm form) {
     public HtmlResponse delete(final DesignForm form) {
-        final File file = getTargetFile(form);
-        if (file == null) {
+        getTargetFile(form).ifPresent(file -> {
+            if (!file.delete()) {
+                logger.error("Failed to delete {}", file.getAbsolutePath());
+                throwValidationError(messages -> messages.addErrorsFailedToDeleteFile(GLOBAL, form.fileName), toMainHtml());
+            }
+        }).orElse(() -> {
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
-        }
-        if (!file.delete()) {
-            logger.error("Failed to delete {}", file.getAbsolutePath());
-            throwValidationError(messages -> messages.addErrorsFailedToDeleteFile(GLOBAL, form.fileName), toMainHtml());
-        }
+        });
         saveInfo(messages -> messages.addSuccessDeleteFile(GLOBAL, form.fileName));
         saveInfo(messages -> messages.addSuccessDeleteFile(GLOBAL, form.fileName));
         return redirect(getClass());
         return redirect(getClass());
     }
     }
@@ -261,21 +263,16 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    private File getTargetFile(final DesignForm form) {
+    private OptionalEntity<File> getTargetFile(final DesignForm form) {
         final File baseDir = new File(getServletContext().getRealPath("/"));
         final File baseDir = new File(getServletContext().getRealPath("/"));
         final File targetFile = new File(getServletContext().getRealPath(form.fileName));
         final File targetFile = new File(getServletContext().getRealPath(form.fileName));
         final List<File> fileList = getAccessibleFileList(baseDir);
         final List<File> fileList = getAccessibleFileList(baseDir);
-        boolean exist = false;
         for (final File file : fileList) {
         for (final File file : fileList) {
             if (targetFile.equals(file)) {
             if (targetFile.equals(file)) {
-                exist = true;
-                break;
+                return OptionalEntity.of(targetFile);
             }
             }
         }
         }
-        if (exist) {
-            return targetFile;
-        }
-        return null;
+        return OptionalEntity.empty();
     }
     }
 
 
     private List<File> getAccessibleFileList(final File baseDir) {
     private List<File> getAccessibleFileList(final File baseDir) {
@@ -306,4 +303,4 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
             return asHtml(path_AdminDesign_AdminDesignJsp);
             return asHtml(path_AdminDesign_AdminDesignJsp);
         };
         };
     }
     }
-}
+}

+ 11 - 9
src/main/java/org/codelibs/fess/app/web/admin/dict/kuromoji/AdminDictKuromojiAction.java

@@ -266,10 +266,6 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createKuromojiItem(form).ifPresent(entity -> {
         createKuromojiItem(form).ifPresent(entity -> {
-            entity.setNewToken(form.token);
-            entity.setNewSegmentation(form.segmentation);
-            entity.setNewReading(form.reading);
-            entity.setNewPos(form.pos);
             kuromojiService.store(form.dictId, entity);
             kuromojiService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -283,10 +279,6 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createKuromojiItem(form).ifPresent(entity -> {
         createKuromojiItem(form).ifPresent(entity -> {
-            entity.setNewToken(form.token);
-            entity.setNewSegmentation(form.segmentation);
-            entity.setNewReading(form.reading);
-            entity.setNewPos(form.pos);
             kuromojiService.store(form.dictId, entity);
             kuromojiService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -312,7 +304,7 @@ public class AdminDictKuromojiAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
 
 
-    protected OptionalEntity<KuromojiItem> createKuromojiItem(final CreateForm form) {
+    private OptionalEntity<KuromojiItem> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
@@ -331,6 +323,16 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<KuromojiItem> createKuromojiItem(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            entity.setNewToken(form.token);
+            entity.setNewSegmentation(form.segmentation);
+            entity.setNewReading(form.reading);
+            entity.setNewPos(form.pos);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 13 - 13
src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java

@@ -297,12 +297,6 @@ public class AdminDictSynonymAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSynonymItem(form).ifPresent(entity -> {
         createSynonymItem(form).ifPresent(entity -> {
-            final String[] newInputs = splitLine(form.inputs);
-            validateSynonymString(newInputs, () -> confirmfromcreate(form));
-            entity.setNewInputs(newInputs);
-            final String[] newOutputs = splitLine(form.outputs);
-            validateSynonymString(newOutputs, () -> confirmfromcreate(form));
-            entity.setNewOutputs(newOutputs);
             synonymService.store(form.dictId, entity);
             synonymService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -316,12 +310,6 @@ public class AdminDictSynonymAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSynonymItem(form).ifPresent(entity -> {
         createSynonymItem(form).ifPresent(entity -> {
-            final String[] newInputs = splitLine(form.inputs);
-            validateSynonymString(newInputs, () -> confirmfromupdate(form));
-            entity.setNewInputs(newInputs);
-            final String[] newOutputs = splitLine(form.outputs);
-            validateSynonymString(newOutputs, () -> confirmfromupdate(form));
-            entity.setNewOutputs(newOutputs);
             synonymService.store(form.dictId, entity);
             synonymService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -347,7 +335,7 @@ public class AdminDictSynonymAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
 
 
-    protected OptionalEntity<SynonymItem> createSynonymItem(final CreateForm form) {
+    private OptionalEntity<SynonymItem> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
@@ -366,6 +354,18 @@ public class AdminDictSynonymAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<SynonymItem> createSynonymItem(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            final String[] newInputs = splitLine(form.inputs);
+            validateSynonymString(newInputs, () -> confirmfromcreate(form));
+            entity.setNewInputs(newInputs);
+            final String[] newOutputs = splitLine(form.outputs);
+            validateSynonymString(newOutputs, () -> confirmfromcreate(form));
+            entity.setNewOutputs(newOutputs);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/fileauthentication/AdminFileauthenticationAction.java

@@ -193,7 +193,6 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createFileAuthentication(form).ifPresent(entity -> {
         createFileAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileAuthenticationService.store(entity);
             fileAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -207,7 +206,6 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createFileAuthentication(form).ifPresent(entity -> {
         createFileAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileAuthenticationService.store(entity);
             fileAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -233,27 +231,20 @@ public class AdminFileauthenticationAction extends FessAdminAction {
     //===================================================================================
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<FileAuthentication> createFileAuthentication(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<FileAuthentication> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final FileAuthentication entity = new FileAuthentication();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new FileAuthentication()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return fileAuthenticationService.getFileAuthentication(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return fileAuthenticationService.getFileAuthentication(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -262,6 +253,17 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<FileAuthentication> createFileAuthentication(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java

@@ -184,7 +184,6 @@ public class AdminFileconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createFileConfig(form).ifPresent(entity -> {
         createFileConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileConfigService.store(entity);
             fileConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -198,7 +197,6 @@ public class AdminFileconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createFileConfig(form).ifPresent(entity -> {
         createFileConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileConfigService.store(entity);
             fileConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -224,27 +222,20 @@ public class AdminFileconfigAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<FileConfig> createFileConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<FileConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final FileConfig entity = new FileConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new FileConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return fileConfigService.getFileConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return fileConfigService.getFileConfig(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -253,6 +244,17 @@ public class AdminFileconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<FileConfig> createFileConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());

+ 11 - 10
src/main/java/org/codelibs/fess/app/web/admin/group/AdminGroupAction.java

@@ -174,8 +174,6 @@ public class AdminGroupAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createGroup(form).ifPresent(entity -> {
         createGroup(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             groupService.store(entity);
             groupService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -189,8 +187,6 @@ public class AdminGroupAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createGroup(form).ifPresent(entity -> {
         createGroup(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             groupService.store(entity);
             groupService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -216,19 +212,16 @@ public class AdminGroupAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<Group> createGroup(final CreateForm form) {
+    private OptionalEntity<Group> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final Group entity = new Group();
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new Group());
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return groupService.getGroup(((EditForm) form).id).map(entity -> {
-                    return entity;
-                });
+                return groupService.getGroup(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -237,6 +230,14 @@ public class AdminGroupAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<Group> createGroup(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java

@@ -173,7 +173,6 @@ public class AdminKeymatchAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createKeyMatch(form).ifPresent(entity -> {
         createKeyMatch(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             keyMatchService.store(entity);
             keyMatchService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             ComponentUtil.getKeyMatchHelper().update();
             ComponentUtil.getKeyMatchHelper().update();
@@ -188,7 +187,6 @@ public class AdminKeymatchAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createKeyMatch(form).ifPresent(entity -> {
         createKeyMatch(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             keyMatchService.store(entity);
             keyMatchService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             ComponentUtil.getKeyMatchHelper().update();
             ComponentUtil.getKeyMatchHelper().update();
@@ -216,28 +214,21 @@ public class AdminKeymatchAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<KeyMatch> createKeyMatch(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
 
 
+    private OptionalEntity<KeyMatch> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final KeyMatch entity = new KeyMatch();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new KeyMatch()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return keyMatchService.getKeyMatch(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return keyMatchService.getKeyMatch(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -246,6 +237,17 @@ public class AdminKeymatchAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<KeyMatch> createKeyMatch(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 19 - 16
src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java

@@ -182,7 +182,6 @@ public class AdminLabeltypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createLabelType(form).ifPresent(entity -> {
         createLabelType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             labelTypeService.store(entity);
             labelTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -196,7 +195,6 @@ public class AdminLabeltypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createLabelType(form).ifPresent(entity -> {
         createLabelType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             labelTypeService.store(entity);
             labelTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -222,27 +220,21 @@ public class AdminLabeltypeAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<LabelType> createLabelType(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+
+    private OptionalEntity<LabelType> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final LabelType entity = new LabelType();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new LabelType()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return labelTypeService.getLabelType(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return labelTypeService.getLabelType(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -251,6 +243,17 @@ public class AdminLabeltypeAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<LabelType> createLabelType(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRoleTypeItems(final RenderData data) {
     protected void registerRoleTypeItems(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
     }
     }

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/overlappinghost/AdminOverlappinghostAction.java

@@ -172,7 +172,6 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createOverlappingHost(form).ifPresent(entity -> {
         createOverlappingHost(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             overlappingHostService.store(entity);
             overlappingHostService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -186,7 +185,6 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createOverlappingHost(form).ifPresent(entity -> {
         createOverlappingHost(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             overlappingHostService.store(entity);
             overlappingHostService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminOverlappinghostAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<OverlappingHost> createOverlappingHost(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<OverlappingHost> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final OverlappingHost entity = new OverlappingHost();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new OverlappingHost()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return overlappingHostService.getOverlappingHost(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return overlappingHostService.getOverlappingHost(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -241,6 +232,17 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<OverlappingHost> createOverlappingHost(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/pathmapping/AdminPathmappingAction.java

@@ -173,7 +173,6 @@ public class AdminPathmappingAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createPathMapping(form).ifPresent(entity -> {
         createPathMapping(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             pathMappingService.store(entity);
             pathMappingService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -187,7 +186,6 @@ public class AdminPathmappingAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createPathMapping(form).ifPresent(entity -> {
         createPathMapping(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             pathMappingService.store(entity);
             pathMappingService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -213,27 +211,20 @@ public class AdminPathmappingAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<PathMapping> createPathMapping(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<PathMapping> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final PathMapping entity = new PathMapping();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new PathMapping()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return pathMappingService.getPathMapping(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return pathMappingService.getPathMapping(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -242,6 +233,17 @@ public class AdminPathmappingAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<PathMapping> createPathMapping(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/requestheader/AdminRequestheaderAction.java

@@ -195,7 +195,6 @@ public class AdminRequestheaderAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRequestHeader(form).ifPresent(entity -> {
         createRequestHeader(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             requestHeaderService.store(entity);
             requestHeaderService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -209,7 +208,6 @@ public class AdminRequestheaderAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRequestHeader(form).ifPresent(entity -> {
         createRequestHeader(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             requestHeaderService.store(entity);
             requestHeaderService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -235,27 +233,20 @@ public class AdminRequestheaderAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<RequestHeader> createRequestHeader(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<RequestHeader> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final RequestHeader entity = new RequestHeader();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new RequestHeader()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return requestHeaderService.getRequestHeader(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return requestHeaderService.getRequestHeader(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -264,6 +255,17 @@ public class AdminRequestheaderAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<RequestHeader> createRequestHeader(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 11 - 10
src/main/java/org/codelibs/fess/app/web/admin/role/AdminRoleAction.java

@@ -174,8 +174,6 @@ public class AdminRoleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRole(form).ifPresent(entity -> {
         createRole(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             roleService.store(entity);
             roleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -189,8 +187,6 @@ public class AdminRoleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRole(form).ifPresent(entity -> {
         createRole(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             roleService.store(entity);
             roleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -216,19 +212,16 @@ public class AdminRoleAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<Role> createRole(final CreateForm form) {
+    private OptionalEntity<Role> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final Role entity = new Role();
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new Role());
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return roleService.getRole(((EditForm) form).id).map(entity -> {
-                    return entity;
-                });
+                return roleService.getRole(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -237,6 +230,14 @@ public class AdminRoleAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<Role> createRole(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/roletype/AdminRoletypeAction.java

@@ -172,7 +172,6 @@ public class AdminRoletypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRoleType(form).ifPresent(entity -> {
         createRoleType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             roleTypeService.store(entity);
             roleTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -186,7 +185,6 @@ public class AdminRoletypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createRoleType(form).ifPresent(entity -> {
         createRoleType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             roleTypeService.store(entity);
             roleTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminRoletypeAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<RoleType> createRoleType(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<RoleType> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final RoleType entity = new RoleType();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new RoleType()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return roleTypeService.getRoleType(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return roleTypeService.getRoleType(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -241,6 +232,17 @@ public class AdminRoletypeAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<RoleType> createRoleType(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 21 - 22
src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java

@@ -268,35 +268,20 @@ public class AdminScheduledjobAction extends FessAdminAction {
         form.available = entity.isEnabled() ? Constants.ON : null;
         form.available = entity.isEnabled() ? Constants.ON : null;
     }
     }
 
 
-    protected OptionalEntity<ScheduledJob> createScheduledJob(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<ScheduledJob> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final ScheduledJob entity = new ScheduledJob();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-                entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
-                entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
-                entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new ScheduledJob()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return scheduledJobService.getScheduledJob(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-                    entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
-                    entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
-                    entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
-                    return entity;
-                });
+                return scheduledJobService.getScheduledJob(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -305,6 +290,20 @@ public class AdminScheduledjobAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<ScheduledJob> createScheduledJob(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
+            entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
+            entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 21 - 60
src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java

@@ -22,7 +22,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
 import org.codelibs.core.lang.StringUtil;
 import org.codelibs.core.lang.StringUtil;
-import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.service.SearchService;
 import org.codelibs.fess.app.service.SearchService;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.entity.SearchRenderData;
 import org.codelibs.fess.entity.SearchRenderData;
@@ -113,47 +112,26 @@ public class AdminSearchlistAction extends FessAdminAction {
     // Search Execute
     // Search Execute
     // ==============
     // ==============
     @Execute
     @Execute
-    public HtmlResponse index(final SearchListForm form) {
+    public HtmlResponse index(final ListForm form) {
+        validate(form, messages -> {}, () -> asHtml(path_ErrorJsp));
         return asHtml(path_AdminSearchlist_IndexJsp);
         return asHtml(path_AdminSearchlist_IndexJsp);
     }
     }
 
 
-    protected HtmlResponse doSearch(final SearchListForm form) {
+    protected HtmlResponse doSearch(final ListForm form) {
 
 
         if (StringUtil.isBlank(form.query)) {
         if (StringUtil.isBlank(form.query)) {
             // redirect to index page
             // redirect to index page
             form.query = null;
             form.query = null;
             return redirect(getClass());
             return redirect(getClass());
         }
         }
+        validate(form, messages -> {}, () -> asHtml(path_ErrorJsp));
         return asHtml(path_AdminSearchlist_IndexJsp).renderWith(data -> {
         return asHtml(path_AdminSearchlist_IndexJsp).renderWith(data -> {
             doSearchInternal(data, form);
             doSearchInternal(data, form);
         });
         });
     }
     }
 
 
-    private void doSearchInternal(final RenderData data, final SearchListForm form) {
-        // init pager
-        if (StringUtil.isBlank(form.start)) {
-            form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-        } else {
-            try {
-                Long.parseLong(form.start);
-            } catch (final NumberFormatException e) {
-                form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-            }
-        }
-        if (StringUtil.isBlank(form.num)) {
-            form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-        } else {
-            try {
-                final int num = Integer.parseInt(form.num);
-                if (num > 100) {
-                    // max page size
-                    form.num = "100";
-                }
-            } catch (final NumberFormatException e) {
-                form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-            }
-        }
-
+    private void doSearchInternal(final RenderData data, final ListForm form) {
+        form.initialize();
         try {
         try {
             final WebRenderData renderData = new WebRenderData(data);
             final WebRenderData renderData = new WebRenderData(data);
             searchService.search(request, form, renderData);
             searchService.search(request, form, renderData);
@@ -173,52 +151,35 @@ public class AdminSearchlistAction extends FessAdminAction {
     }
     }
 
 
     @Execute
     @Execute
-    public HtmlResponse search(final SearchListForm form) {
+    public HtmlResponse search(final ListForm form) {
         return doSearch(form);
         return doSearch(form);
     }
     }
 
 
     @Execute
     @Execute
-    public HtmlResponse prev(final SearchListForm form) {
+    public HtmlResponse prev(final ListForm form) {
         return doMove(form, -1);
         return doMove(form, -1);
     }
     }
 
 
     @Execute
     @Execute
-    public HtmlResponse next(final SearchListForm form) {
+    public HtmlResponse next(final ListForm form) {
         return doMove(form, 1);
         return doMove(form, 1);
     }
     }
 
 
     @Execute
     @Execute
-    public HtmlResponse move(final SearchListForm form) {
+    public HtmlResponse move(final ListForm form) {
         return doMove(form, 0);
         return doMove(form, 0);
     }
     }
 
 
-    protected HtmlResponse doMove(final SearchListForm form, final int move) {
-        int size = Constants.DEFAULT_PAGE_SIZE;
-        if (StringUtil.isBlank(form.num)) {
-            form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-        } else {
-            try {
-                size = Integer.parseInt(form.num);
-            } catch (final NumberFormatException e) {
-                form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
+    protected HtmlResponse doMove(final ListForm form, final int move) {
+        form.initialize();
+        Integer pageNumber = form.pn;
+        if (pageNumber != null && pageNumber > 0) {
+            pageNumber = pageNumber + move;
+            if (pageNumber < 1) {
+                pageNumber = 1;
             }
             }
+            form.start = (pageNumber - 1) * form.getPageSize();
         }
         }
-
-        if (StringUtil.isBlank(form.pn)) {
-            form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-        } else {
-            Integer pageNumber = Integer.parseInt(form.pn);
-            if (pageNumber != null && pageNumber > 0) {
-                pageNumber = pageNumber + move;
-                if (pageNumber < 1) {
-                    pageNumber = 1;
-                }
-                form.start = String.valueOf((pageNumber - 1) * size);
-            } else {
-                form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-            }
-        }
-
         return doSearch(form);
         return doSearch(form);
     }
     }
 
 
@@ -226,16 +187,16 @@ public class AdminSearchlistAction extends FessAdminAction {
     // Confirm
     // Confirm
     // -------
     // -------
     @Execute
     @Execute
-    public HtmlResponse confirmDelete(final SearchListForm form) {
+    public HtmlResponse confirmDelete(final ListForm form) {
         return asHtml(path_AdminSearchlist_ConfirmDeleteJsp);
         return asHtml(path_AdminSearchlist_ConfirmDeleteJsp);
     }
     }
 
 
     @Execute
     @Execute
-    public HtmlResponse delete(final SearchListForm form) {
+    public HtmlResponse delete(final ListForm form) {
         return deleteByQuery(form);
         return deleteByQuery(form);
     }
     }
 
 
-    private HtmlResponse deleteByQuery(final SearchListForm form) {
+    private HtmlResponse deleteByQuery(final ListForm form) {
         final String docId = form.docId;
         final String docId = form.docId;
         if (jobHelper.isCrawlProcessRunning()) {
         if (jobHelper.isCrawlProcessRunning()) {
             // TODO Error
             // TODO Error

+ 36 - 48
src/main/java/org/codelibs/fess/app/web/admin/searchlist/SearchListForm.java → src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java

@@ -19,42 +19,44 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 
 
-import org.codelibs.core.lang.StringUtil;
+import javax.validation.constraints.Size;
+
 import org.codelibs.fess.entity.FacetInfo;
 import org.codelibs.fess.entity.FacetInfo;
 import org.codelibs.fess.entity.GeoInfo;
 import org.codelibs.fess.entity.GeoInfo;
 import org.codelibs.fess.entity.SearchRequestParams;
 import org.codelibs.fess.entity.SearchRequestParams;
 import org.codelibs.fess.helper.QueryHelper;
 import org.codelibs.fess.helper.QueryHelper;
 import org.codelibs.fess.util.ComponentUtil;
 import org.codelibs.fess.util.ComponentUtil;
+import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
 
 
 /**
 /**
  * @author codelibs
  * @author codelibs
  * @author Keiichi Watanabe
  * @author Keiichi Watanabe
  */
  */
 //public class SearchListForm implements Serializable {
 //public class SearchListForm implements Serializable {
-public class SearchListForm implements SearchRequestParams, Serializable {
+public class ListForm implements SearchRequestParams, Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
-    //@Maxbytelength(maxbytelength = 1000)
+    @Size(max = 1000)
     public String query;
     public String query;
 
 
     public String sort;
     public String sort;
 
 
-    //@Digits(integer=10, fraction=0)
-    public String start;
+    @ValidateTypeFailure
+    public Integer start;
 
 
-    //@Digits(integer=10, fraction=0)
-    public String pn;
+    @ValidateTypeFailure
+    public Integer pn;
 
 
-    //@Digits(integer=10, fraction=0)
-    public String num;
+    @ValidateTypeFailure
+    public Integer num;
 
 
     public String[] lang;
     public String[] lang;
 
 
-    //@Required(target = "confirmDelete,delete")
+    // @Required
     public String docId;
     public String docId;
 
 
-    //@Required(target = "confirmDelete")
+    // @Required
     public String url;
     public String url;
 
 
     @Override
     @Override
@@ -66,7 +68,7 @@ public class SearchListForm implements SearchRequestParams, Serializable {
 
 
     public String additional[];
     public String additional[];
 
 
-    //@Maxbytelength(maxbytelength = 10)
+    @Size(max = 10)
     public String op;
     public String op;
 
 
     @Override
     @Override
@@ -92,51 +94,24 @@ public class SearchListForm implements SearchRequestParams, Serializable {
 
 
     public FacetInfo facet;
     public FacetInfo facet;
 
 
-    private int startPosition = -1;
-
-    private int pageSize = -1;
-
     @Override
     @Override
     public int getStartPosition() {
     public int getStartPosition() {
-        if (startPosition != -1) {
-            return startPosition;
-        }
-
-        final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
-        if (StringUtil.isBlank(start)) {
-            startPosition = queryHelper.getDefaultStart();
-        } else {
-            try {
-                startPosition = Integer.parseInt(start);
-            } catch (final NumberFormatException e) {
-                startPosition = queryHelper.getDefaultStart();
-            }
+        if (start == null) {
+            start = ComponentUtil.getQueryHelper().getDefaultStart();
         }
         }
-        start = String.valueOf(startPosition);
-        return startPosition;
+        return start;
     }
     }
 
 
     @Override
     @Override
     public int getPageSize() {
     public int getPageSize() {
-        if (pageSize != -1) {
-            return pageSize;
-        }
-
         final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
         final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
-        if (StringUtil.isBlank(num)) {
-            pageSize = queryHelper.getDefaultPageSize();
-        } else {
-            try {
-                pageSize = Integer.parseInt(num);
-                if (pageSize > queryHelper.getMaxPageSize() || pageSize <= 0) {
-                    pageSize = queryHelper.getMaxPageSize();
-                }
-            } catch (final NumberFormatException e) {
-                pageSize = queryHelper.getDefaultPageSize();
-            }
+        if (num == null) {
+            num = queryHelper.getDefaultPageSize();
         }
         }
-        num = String.valueOf(pageSize);
-        return pageSize;
+        if (num > queryHelper.getMaxPageSize() || num <= 0) {
+            num = queryHelper.getMaxPageSize();
+        }
+        return num;
     }
     }
 
 
     @Override
     @Override
@@ -158,4 +133,17 @@ public class SearchListForm implements SearchRequestParams, Serializable {
     public String getSort() {
     public String getSort() {
         return sort;
         return sort;
     }
     }
+
+    public void initialize() {
+        final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
+        if (start == null) {
+            start = queryHelper.getDefaultStart();
+        }
+        if (num == null) {
+            num = queryHelper.getDefaultPageSize();
+        } else if (num > queryHelper.getMaxPageSize()) {
+            num = queryHelper.getMaxPageSize();
+        }
+    }
+
 }
 }

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/suggestbadword/AdminSuggestbadwordAction.java

@@ -224,7 +224,6 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSuggestBadWord(form).ifPresent(entity -> {
         createSuggestBadWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestBadWordService.store(entity);
             suggestBadWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -238,7 +237,6 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSuggestBadWord(form).ifPresent(entity -> {
         createSuggestBadWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestBadWordService.store(entity);
             suggestBadWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -320,27 +318,20 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<SuggestBadWord> createSuggestBadWord(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<SuggestBadWord> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final SuggestBadWord entity = new SuggestBadWord();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new SuggestBadWord()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return suggestBadWordService.getSuggestBadWord(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return suggestBadWordService.getSuggestBadWord(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -349,6 +340,17 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<SuggestBadWord> createSuggestBadWord(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/suggestelevateword/AdminSuggestelevatewordAction.java

@@ -224,7 +224,6 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSuggestElevateWord(form).ifPresent(entity -> {
         createSuggestElevateWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestElevateWordService.store(entity);
             suggestElevateWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -238,7 +237,6 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createSuggestElevateWord(form).ifPresent(entity -> {
         createSuggestElevateWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestElevateWordService.store(entity);
             suggestElevateWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -320,27 +318,20 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<SuggestElevateWord> createSuggestElevateWord(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<SuggestElevateWord> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final SuggestElevateWord entity = new SuggestElevateWord();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new SuggestElevateWord()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return suggestElevateWordService.getSuggestElevateWord(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return suggestElevateWordService.getSuggestElevateWord(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -349,6 +340,17 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<SuggestElevateWord> createSuggestElevateWord(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        Small Helper
     //                                                                        ============
     //                                                                        ============

+ 15 - 15
src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java

@@ -203,8 +203,6 @@ public class AdminUserAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createUser(form).ifPresent(entity -> {
         createUser(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude("crudMode", "password", "confirmPassword"));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             userService.store(entity);
             userService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -219,8 +217,6 @@ public class AdminUserAction extends FessAdminAction {
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         //verifyPassword(form);
         //verifyPassword(form);
         createUser(form).ifPresent(entity -> {
         createUser(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude("crudMode", "password", "confirmPassword"));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             userService.store(entity);
             userService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -246,20 +242,11 @@ public class AdminUserAction extends FessAdminAction {
     //===================================================================================
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<User> createUser(final CreateForm form) {
+    private OptionalEntity<User> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final User entity = new User();
-                sessionManager.getAttribute(TEMPORARY_PASSWORD, String.class).ifPresent(password -> {
-                    entity.setPassword(password);
-                });
-                return OptionalEntity.of(entity);
-            }
-            break;
-        case CrudMode.EDIT:
-            if (form instanceof EditForm) {
-                return userService.getUser(((EditForm) form).id).map(entity -> {
+                return OptionalEntity.of(new User()).map(entity -> {
                     sessionManager.getAttribute(TEMPORARY_PASSWORD, String.class).ifPresent(password -> {
                     sessionManager.getAttribute(TEMPORARY_PASSWORD, String.class).ifPresent(password -> {
                         entity.setPassword(password);
                         entity.setPassword(password);
                     });
                     });
@@ -267,12 +254,25 @@ public class AdminUserAction extends FessAdminAction {
                 });
                 });
             }
             }
             break;
             break;
+        case CrudMode.EDIT:
+            if (form instanceof EditForm) {
+                return userService.getUser(((EditForm) form).id);
+            }
+            break;
         default:
         default:
             break;
             break;
         }
         }
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<User> createUser(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     protected Map<String, String> createItem(final String label, final String value) {
     protected Map<String, String> createItem(final String label, final String value) {
         final Map<String, String> map = new HashMap<String, String>(2);
         final Map<String, String> map = new HashMap<String, String>(2);
         map.put(Constants.ITEM_LABEL, label);
         map.put(Constants.ITEM_LABEL, label);

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/webauthentication/AdminWebauthenticationAction.java

@@ -194,7 +194,6 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createWebAuthentication(form).ifPresent(entity -> {
         createWebAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webAuthenticationService.store(entity);
             webAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -208,7 +207,6 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createWebAuthentication(form).ifPresent(entity -> {
         createWebAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webAuthenticationService.store(entity);
             webAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -234,27 +232,20 @@ public class AdminWebauthenticationAction extends FessAdminAction {
     //===================================================================================
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<WebAuthentication> createWebAuthentication(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<WebAuthentication> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final WebAuthentication entity = new WebAuthentication();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new WebAuthentication()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return webAuthenticationService.getWebAuthentication(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return webAuthenticationService.getWebAuthentication(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -263,6 +254,17 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<WebAuthentication> createWebAuthentication(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java

@@ -185,7 +185,6 @@ public class AdminWebconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createWebConfig(form).ifPresent(entity -> {
         createWebConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webConfigService.store(entity);
             webConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -199,7 +198,6 @@ public class AdminWebconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         validate(form, messages -> {}, toEditHtml());
         createWebConfig(form).ifPresent(entity -> {
         createWebConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webConfigService.store(entity);
             webConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
         }).orElse(() -> {
@@ -225,27 +223,20 @@ public class AdminWebconfigAction extends FessAdminAction {
     // ===================================================================================
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        Assist Logic
     //                                                                        ============
     //                                                                        ============
-    protected OptionalEntity<WebConfig> createWebConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<WebConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
             if (form instanceof CreateForm) {
-                final WebConfig entity = new WebConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new WebConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             }
             break;
             break;
         case CrudMode.EDIT:
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
             if (form instanceof EditForm) {
-                return webConfigService.getWebConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return webConfigService.getWebConfig(((EditForm) form).id);
             }
             }
             break;
             break;
         default:
         default:
@@ -254,6 +245,17 @@ public class AdminWebconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
         return OptionalEntity.empty();
     }
     }
 
 
+    protected OptionalEntity<WebConfig> createWebConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());